“参数数据类型 ntext 对于 len 函数的参数 1 无效”错误

Sam*_*man 4 c# linq entity-framework ntext

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

ReviewsDBEntities DB = new ReviewsDBEntities();  
var result=DB.Review.Where(r => r.ReviewText.Length > 200);
Run Code Online (Sandbox Code Playgroud)

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

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

Jer*_*ert 5

var result=DB.Review.Where(r => SqlFunctions.DataLength(r.ReviewText) / 2 > 200);
Run Code Online (Sandbox Code Playgroud)

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