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
Я заметил ты звонишь InsertOnSubmit
на mydb
и звонит SubmitChanges
на ISNetDB
- это опечатка или причина ошибки.