LINQ Большая строка (64 КБ) не вставлена ​​в базу данных SQL

У меня есть столбец в SQL VARCHAR (Макс). Используя LINQ, когда я пытаюсь добавить запись со строкой размером более 64 КБ, значение не сохраняется в БД. Я просто делаю;

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

Есть ли ограничение при использовании LINQ to SQL? Какой правильный способ сделать это?

1 ответ

VarChar(Max)поддерживает строку длиной до 8000 символов (SQL Server 2k). На 2005+ это не должно вызывать ошибки.

Вы можете использоватьTextполя; для SQL Server 2005+, VarChar(Max) является предпочтительным.

Важный

Типы данных ntext, text и image будут удалены в следующей версии MicrosoftSQL Server. Избегайте использования этих типов данных в новых разработках и планируйте модифицировать приложения, которые их используют в настоящее время. Вместо этого используйте nvarchar(max), varchar(max) и varbinary(max). Типы данных фиксированной и переменной длины для хранения больших не-Unicode и Unicode символов и двоичных данных. Данные Unicode используют набор символов UNICODE UCS-2.

Смотрите это для деталей о типе данных VarChar & Text

  1. Текстовый тип SQL Server и тип данных varchar
  2. MSDN: текст, текст и изображение

Я заметил ты звонишь InsertOnSubmit на mydb и звонит SubmitChanges на ISNetDB - это опечатка или причина ошибки.

Другие вопросы по тегам