我在SQL varchar(max)中有一个列。使用LINQ时,当我尝试添加超过64k的字符串的记录时,该值不会保存到DB中。我只是在做;
test.MyString = LargeString; //(over 64k text)
mydb.myTable.InsertOnSubmit(test);
mydb.SubmitChanges();
使用LINQ to SQL时是否有限制?这样做的正确方法是什么?
答案 0 :(得分:7)
VarChar(Max)
支持最多8000个字符的字符串(SQL Server 2k)。在2005年以上,这不应该导致错误。
您可能想要使用Text
字段; for SQL Server 2005+, VarChar(Max)
is preferred
重要强>
ntext,text和image数据类型将被删除 未来版本的MicrosoftSQL Server。避免使用这些数据类型 新的开发工作,并计划修改当前的应用程序 使用它们。请改用nvarchar(max),varchar(max)和varbinary(max)。 固定和可变长度数据类型,用于存储大型非Unicode和 Unicode字符和二进制数据。 Unicode数据使用UNICODE UCS-2 字符集。
有关VarChar&amp ;;的详细信息,请参阅此处。文本数据类型
我注意到您在InsertOnSubmit
上呼叫mydb
并在SubmitChanges
上呼叫ISNetDB
- 这是错误或导致错误。