【发布时间】:2021-04-09 04:03:26
【问题描述】:
我在 .NET Core 3.1 中创建了一个全新的项目,我正在创建的查询正在生成一个不包含 where 子句而是读取整个表的 SQL 查询(在 SQL Server Profiler 中查看)。有没有办法传入谓词并将其合并到最终生成的 SQL 语句中?
在下面的函数中,query1 是 IQueryable<Balance>,query2 是 IEnumerable<Balance>:
public int GetCount(Func<Balance, bool> predicate)
{
var query1 = (from b in _appContext.Balance
select b
);
var query2 = query1.Where(predicate);
var count = query2.Count();
return count;
}
这样称呼:
GetCount(p => p.Email == 'test@gmail.com');
【问题讨论】:
-
好的...我发现这个答案令人困惑...但它确实有一个链接可以帮助我。
-
您使用的是什么 LINQ(您的标签有冲突):LINQ to SQL / EF 6.x / EF Core 2.0 / 2.1 / 3.x / 5.x?我猜 LINQ to EF Core 2.x 在无法使用服务器端时会自动转换为客户端处理。
-
@NetMage 老实说,我不知道...我如何确定这个?
标签: sql-server .net-core linq-to-sql entity-framework-core