【发布时间】:2020-04-21 02:59:20
【问题描述】:
我想有效地从此查询中获取结果。
// 获取所有名字以F或更高字母开头的人
Select * from MyTable where PersonName >'F'
当我使用 Entity Framework Core 3.0 运行此代码时,
context.MyTable
.Where(t=> String.Compare(t.PersonName ,"F")>0);
我有错误,
无法翻译查询。要么重写查询的形式 可以翻译,或通过以下方式显式切换到客户评估 插入对 AsEnumerable()、AsAsyncEnumerable() 的调用, ToList() 或 ToListAsync()
我目前的工作是使用 FromSQL 方法并编写我自己的 sql。有什么方法可以使用 LINQ 语法实现相同的功能?
【问题讨论】:
-
尝试使用 String.Contains 而不是 String.Compare。
-
您的目标是什么数据库类型?因为示例查询适用于 SqlServer(尝试了最新的 EFC 3.1.3 和 EFC 3.0.0)。
-
你也可以试试stackoverflow.com/questions/59090817/…的解决方案
标签: c# linq ef-core-3.0