我有一个 Document 类,将该文档的数据存储为字节数组。我需要使用 LINQ to Entities 检查数组的大小。
我尝试了以下方法:
[long Linq query here...] o.Data.Length < 800000)
问题是我得到以下异常:
LINQ to Entities 不支持 LINQ 表达式节点类型 'ArrayLength'。”
有没有其他方法可以检查字节数组的大小?
我有一个 Document 类,将该文档的数据存储为字节数组。我需要使用 LINQ to Entities 检查数组的大小。
我尝试了以下方法:
[long Linq query here...] o.Data.Length < 800000)
问题是我得到以下异常:
LINQ to Entities 不支持 LINQ 表达式节点类型 'ArrayLength'。”
有没有其他方法可以检查字节数组的大小?
用于SqlFunctions.DataLength Method (Byte[])
比较长度。
yourquery..... SqlFunctions.DataLength(o.Data) < 800000)
如果可能,您的 LINQ to Entities 查询将被转换为 SQL。由于转换器不会将 Array.Length 映射到任何 SQL 方法,因此您不能在 LINQ to Entities 查询中使用它。
您可以做的是在表中添加一列,或者创建一个VIEW
计算长度并将其公开为列的列。然后您可以查询该字段,它将起作用。