我的实体框架有问题,它在保存到数据库时截断字符串值
我在 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) 中有数据库限制吗?
请帮助我,非常感谢您提前宝贵的时间。
谢谢
我遇到了同样的问题,但结果是 SQL Server Management Studio 截断了数据,而不是实体框架(正如 Scott Chamberlain 在评论中所说)。通过转到“查询”->“查询选项”来更改它):
我也有同样的问题,但是问题发生在将数据插入数据库之前,实体框架正在创建一个截断字符串的查询,调用 SaveChanges() 方法时字符串是完整的,但是在检查数据库日志后,实体框架创建的查询,字符串被截断。我已经设置了实体框架所需的参数,以便对数据库中的字段(即 VARCHAR(MAX) 字段)使用相同的值。我不知道还能做什么,字符串在我的代码中始终是完整的,但实体框架不断截断它,而我无法控制它。