5

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

test.MyString = LargeString; //(over 64k text)
mydb.myTable.InsertOnSubmit(test);
mydb.SubmitChanges();

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

4

1 回答 1

8

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、文本和图像

我注意到你在打电话InsertOnSubmitmydb打电话SubmitChanges-ISNetDB这是错字还是错误的原因。

于 2011-08-04T15:21:13.107 回答