[英]Load related entities using .Find() method in an EF Core generic repository
[英]EF Core - Include related entities using a generic method
以前,早在 EF Frameowrk 时代,当需要实体的相关实体时,以下方法就足够了。
private IQueryable<T> EntitySet(params Expression<Func<T, object>>[] includes)
{
var set = Context.Set<T>().Where(x => !x.IsDeleted);
if (includes != null)
{
foreach (var include in includes)
{
set = set.Include(include);
}
}
return set;
}
我会用EntitySet(x => x.People, x => x.People.Meetings)
类的东西来调用这个方法。 但是,自从迁移到 EF 核心后,我无法再获取相关数据,因为我需要显式使用Include(x.People).ThenInclude(p.Meegings)
。
我在 EF 核心中尝试做的事情是否可行? 还是在收集相关数据方面发生了太多变化,以至于上述方法不再适用?
您似乎正试图向同一 DbSet 的许多查询添加过滤器。 您之前在 EF Core 中查看过查询过滤器吗? 它似乎与您正在尝试做的事情非常相似。 如果您需要查询应该获取所有记录而不仅仅是活动记录,则可以选择在按查询的基础上忽略查询过滤器。
https://docs.microsoft.com/en-us/ef/core/querying/filters
编辑:如果您希望动态指定您的包含仍然。 您可以在 EF Core 中使用与在 EF 中相同的字符串来执行此操作。 但是,使用 lambda 访问子对象的能力可能会在转换中丢失。 https://entityframeworkcore.com/knowledge-base/38083198/add-include-expressions-dynamically
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.