3

我正在使用实体框架并编写此代码以从 DB 中获取一些结果:

ReviewsDBEntities DB = new ReviewsDBEntities();  
var result=DB.Review.Where(r => r.ReviewText.Length > 200);

但我将此错误视为内部错误:“参数数据类型 ntext 对 len 函数的参数 1 无效”

我查了一下,发现因为ReviewText的类型定义为ntext,所以函数Len不会在Database端运行。现在,我不知道如何更改代码以获取长度超过 200 的 ReviewTexts。

4

1 回答 1

5
var result=DB.Review.Where(r => SqlFunctions.DataLength(r.ReviewText) / 2 > 200);

为什么/ 2?因为DATALENGTH以字节为单位返回长度,并且NTEXT包含 Unicode 字符,每个字符消耗 2 个字节。

于 2016-11-08T19:06:21.707 回答