Ошибка Linq to SQL SQL не сравнивает NText, Text, Xml или Image? - PullRequest
12 голосов
/ 15 мая 2009

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

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

В базе данных есть поле, являющееся текстовым полем, поскольку оно будет содержать строку размером до 32 КБ.

Должен ли я изменить тип данных или в Linq можно обойтись?

EDIT

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

Ответы [ 5 ]

9 голосов
/ 09 сентября 2009

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

7 голосов
/ 15 мая 2009

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


EDIT

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

1 голос
/ 09 августа 2011

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

        [Column(Name = "SomeXml", Storage = "_someXml", CanBeNull = true, UpdateCheck = UpdateCheck.Never)]
    public System.Xml.Linq.XDocument SomeXml { get { return _someXml; } set { _someXml = value; } }
1 голос
/ 24 февраля 2011

Вы можете вручную изменить проверку обновления на «Никогда» в .dbml.

0 голосов
/ 30 июля 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...