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。
var result=DB.Review.Where(r => SqlFunctions.DataLength(r.ReviewText) / 2 > 200);
Run Code Online (Sandbox Code Playgroud)
为什么/ 2
?因为DATALENGTH
返回的长度以字节为单位,并且NTEXT
包含Unicode字符,每个字符消耗2个字节。