gpt4 book ai didi

entity-framework-5 - 在预加载中过滤导航属性

转载 作者:行者123 更新时间:2023-12-01 12:50:18 25 4
gpt4 key购买 nike

我一直在使用软删除,现在我想加载未“删除”的实体的导航属性。我找到了一种方法,我的问题是这种方法对我来说不是很清楚,还有另一种方法可以做到这一点。


Context.CreateSet().Include("Salary").Select(u => new {User= u, Salary = u.Salarys.Where(s => !s.Deleted)}).AsQueryable().Select(a => a.User).AsQueryable();

最佳答案

预加载不支持过滤。您的代码可以简化为:

var users = Context.CreateSet<User>()
.Select(u => new {
User = u,
Salary = u.Salaries.Where(s => !s.Deleted)
})
.AsEnumerable()
.Select(a => a.User);

Include 是不需要的,因为您要用自己的查询替换它,并且不需要 AsQueryable,因为查询始终是 IQueryable直到调用 AsEnumerable 时,它会在选择用户和选定薪水时发送到 Linq-to-Objects。 EF 将负责为您正确修复导航属性。

关于entity-framework-5 - 在预加载中过滤导航属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996617/

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