c# - "Argument data type ntext is invalid for argument 1 of len function"错误

标签 c# entity-framework linq ntext

我正在使用 Entity Framework 并编写此代码以从数据库中获取一些结果:

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

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

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

最佳答案

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

为什么是/2?因为DATALENGTH返回以字节为单位的长度,NTEXT 包含 Unicode 字符,每个字符占用 2 个字节。

关于c# - "Argument data type ntext is invalid for argument 1 of len function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494269/

相关文章:

c# - 在 C# 中使用 LINQ 过滤可变数量的参数

c# - 如何连接一行中的所有列值,然后将 DataTable 中的所有行连接成一个字符串?

c# - 无法将 lambda 表达式转换为类型 "string"因为它不是委托(delegate)类型?

c# - 构建 linq 查询以获得最快性能的正确方法?

c# - Entity Framework ,在单个查询中通过主键加载多个实体,同时仍然使用缓存

c# - 使用 SharpNLP 识别英语句子中的时态

c# - 如何在 .NET 中删除 TcpChannel 对象

c# - 在 DataGridView 中显示导航属性的属性(二级属性)

c# - Process.Kill 似乎不适用于 iexplore.exe

c# - 使用Linq查找连续的重复元素