Ошибка Linq to SQL SQL не сравнивает NText, Text, Xml или Image?

При попытке выполнить обновление для объекта Linq я получаю следующую ошибку.

"SQL Server не обрабатывает сравнение типов файлов NText, Text, Xml или Image."

В базе данных есть поле, которое является текстовым полем, потому что оно будет содержать строку, которая может достигать 32 кбайт.

Должен ли я изменить тип данных или есть ли работа в Linq, которую я мог бы использовать?

ИЗМЕНИТЬ

У меня есть поддержка SQL 2000, поэтому это поле TEXT.

Ответ 1

Измените его на VARCHAR (max) - это облегчит жизнь.


ИЗМЕНИТЬ

Полная индексация текста может помочь вам здесь, не уверен, что SQL 2000 позволит вам "искать" в текстовом столбце

Ответ 2

вы всегда можете использовать ToString() в соответствующей строке, которая заставит сравнить на стороне клиента.

Ответ 3

Вы можете вручную изменить Update Update на "Never" в .dbml.

Ответ 4

Или вы можете установить UpdateCheck в коде:

        [Column(Name = "SomeXml", Storage = "_someXml", CanBeNull = true, UpdateCheck = UpdateCheck.Never)]
    public System.Xml.Linq.XDocument SomeXml { get { return _someXml; } set { _someXml = value; } }

Ответ 5

Вам нужно изменить ВСЕ поля таблицы на NVARCHAR (MAX). Даже те, которые вы не обновляете.