尝试对Linq对象进行更新时,收到以下错误。
“SQL Server不处理NText,Text,Xml或Image数据类型的比较。”
数据库中有一个字段是Text字段,因为它将保存一个可能高达32kb的字符串。
我应该更改数据类型还是在Linq中可以使用?
修改
我支持SQL 2000,这就是为什么它是一个TEXT字段。
答案 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) - 即使是您未更新的字段。