下面的问题让我花了几个小时寻找解决方案。我终于找到了它并想分享,这样我就可以节省其他人花在它上面的时间。
我在 linq to sql 中有一个查询,需要对类型为 ntext 的列进行排序和分组。对 ntext 列进行排序或分组会导致“无法比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。” 在进行排序或分组之前,需要将数据转换为 nvarchar。如何指示 linq to sql 将我的 ntext 列转换为 nvarchar(max) 列?
调用Convert.ToString("Value")导致列值从 ntext 转换为 nvarchar(max) 并且生成的 sql 是CONVERT(NVarChar(max),Value)。然后排序和分组工作得很好。