LINQ Большая строка (64 КБ) не вставлена ​​в базу данных SQL - PullRequest
4 голосов
/ 04 августа 2011

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

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

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

1 Ответ

7 голосов
/ 04 августа 2011

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 on ISNetDB - это опечатка или причина ошибки.

...