Linq to SQL错误SQL不比较NText,Text,Xml或Image?

时间:2009-05-15 15:27:47

标签: .net linq-to-sql

尝试对Linq对象进行更新时,收到以下错误。

“SQL Server不处理NText,Text,Xml或Image数据类型的比较。”

数据库中有一个字段是Text字段,因为它将保存一个可能高达32kb的字符串。

我应该更改数据类型还是在Linq中可以使用?

修改

我支持SQL 2000,这就是为什么它是一个TEXT字段。

5 个答案:

答案 0 :(得分:9)

你总是可以在有问题的字符串上使用ToString(),这将迫使客户端进行比较。

答案 1 :(得分:7)

将其更改为VARCHAR(最大) - 它将使生活更轻松。


修改

全文索引可能会对您有所帮助,不确定SQL 2000是否允许您在文本列中“搜索”

答案 2 :(得分:1)

您可以在.dbml中手动将更新检查更改为“从不”。

答案 3 :(得分:1)

或者您可以在代码中设置UpdateCheck:

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

答案 4 :(得分:0)

您必须将所有表格的字段更改为 NVARCHAR(MAX) - 即使是您未更新的字段。