【发布时间】:2017-04-11 03:19:49
【问题描述】:
我遇到了 Entity Framework 的问题,它在保存到数据库时会截断字符串值
我在 SQL Server 2014 中有数据库列 Description nvarchar(max),在我的模型类中有这样的属性:
public string Description { get; set; }
我用这段代码插入数据库
db.EnitityName.Add(object);
db.SaveChanges();
正常情况下可以保存记录,没有问题,但是当Description属性中字符串超过40k字符时,保存的值会被截断到40k以上的最后一个字符。
例如,我们有一个 50k 字符的字符串,它只保存前 40k 个字符并截断最后 10k 个字符。
是我做错了什么,还是实体框架对字符串长度有限制,或者在 nvarchar(max) 中有数据库限制?
请帮助我,提前感谢您的宝贵时间。
谢谢
【问题讨论】:
-
如何确定其余部分丢失了? EF 对字符串长度没有限制。
-
谢谢,好点,当我看到数据库值它不完整的字符串时,它被截断了。这就是问题所在,如果我发送 2-3k 字符串将其全部保存在数据库中,您现在可能会得到更好的主意。
-
但是如何检查呢?直接用工具查询数据库?另一个 C# 代码?还有什么?简单地询问长度有什么用?
-
在sql查询中使用select语句或者直接在数据库中打开。两种方式我都检查。
-
你在Sql Server Management studio中被选中了吗?这确实对您选择的内容有长度限制。尝试
select len(Description) from EnitityName并以这种方式检查大小。
标签: c# string entity-framework