gpt4 book ai didi

c# - 如何将 where 子句附加到 Entity Framework ObjectSet

转载 作者:行者123 更新时间:2023-11-30 20:11:11 26 4
gpt4 key购买 nike

我想将一组条件 where 子句附加到 ObjectSet 的末尾。但是,子句不会执行,而是运行原始查询,例如:

using (Entities context = new Entities()){
var q = context.AuditLogs;
q.Where(o => o.WebsiteId == 1);
}

不执行where子句,返回完整结果集我可以改用 IQueryAble,如下所示:

var q = context.AuditLogs.AsQueryable();
q = q.Where(o => o.WebsiteId == 1);

然而,这使我无法使用 .Include 来急切加载我的相关实体。

最佳答案

不,不会。在执行查询之前的任何时候,您仍然可以将其转换回 ObjectQuery 并在其上调用类似 Include 的方法:

var query = context.AuditLogs.AsQueryable();
query = query.Where(o => o.WebsiteId == 1);
var auditLog = ((ObjectQuery<AuditLog>)query).Include("yourNavPropertyName")
.ToList();

如果您打算逐步建立标准,那么另一种选择是利用 EntitySQLQueryBuilder 方法:

var query = context.AuditLogs.Where("it.WebsiteId = 1");
query = query.Where("...");
var auditLog = query.Include("yourNavPropertyName")
.ToList();

关于c# - 如何将 where 子句附加到 Entity Framework ObjectSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4079691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com