LINQ大字符串(64k)未插入SQL数据库

Red*_*Taz 4 c# linq-to-sql varcharmax

我在SQL varchar(max)中有一个列.使用LINQ时,当我尝试添加超过64k的字符串的记录时,该值不会保存到DB中.我只是在做;

test.MyString = LargeString; //(over 64k text)
mydb.myTable.InsertOnSubmit(test);
mydb.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

使用LINQ to SQL时是否有限制?这样做的正确方法是什么?

Yet*_*ser 7

VarChar(Max)支持最多8000个字符的字符串(SQL Server 2k).在2005年以上,这不应该导致错误.

您可能想要使用Text字段; 对于SQL Server 2005+,VarChar(Max)是首选.

重要

将来的MicrosoftSQL Server版本中将删除ntext,text和image数据类型.避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序.请改用nvarchar(max),varchar(max)和varbinary(max).固定和可变长度数据类型,用于存储大型非Unicode和Unicode字符和二进制数据.Unicode数据使用UNICODE UCS-2字符集.

有关VarChar和文本数据类型的详细信息,请参阅此处

  1. SQL Server文本类型与varchar数据类型
  2. MSDN:ntext,text和image

我注意到您呼叫InsertOnSubmitmydb,并呼吁SubmitChanges有关ISNetDB-这是错字或引起错误的.