我在实体框架中面临SaveChanges()
方法的问题。有时它工作正常,有时它不是我得到一条错误消息说:
字符串或二进制数据 截断。声明一直如此 终止。
任何人都可以帮助我....
感谢。
答案 0 :(得分:0)
默认情况下,所有字符串都存储为NVARCHAR(4000)。如果字符串长度超过4000个字符,则会出现此错误。要限制字段长度并向模型添加验证逻辑,请将StringLength(... maxlen ...)属性(http://msdn.microsoft.com/en-US/library/system.componentmodel.dataannotations.stringlengthattribute.aspx)与模型属性一起使用。
答案 1 :(得分:0)
您可以在数据库表上更正此问题 您在表上增加列长度的“nvarchar”和“varchar列” 也 当您使用EF插入或更新时,您可以检查len的值并检查您的查询 调用SaveChanges()方法时的SQL事件探查器 并检查您在EF层获取的域层或实体上的GET和SET方法中的值
及以下链接很有用: EF Exception: String or binary data would be truncated. The statement has been terminated.? , http://forums.asp.net/t/1660868.aspx/1