我已经有了一个有效的解决方案,可以将夹杂物转换为它们的点路径,以支持
.Include
/.ThenInclude
。但是,EF 现在允许您添加诸如 .Include(x => x.MyNavigations.Where(predicate))
之类的过滤器,而点路径表示法对此不起作用。我真的很想将特定于 EF 的依赖项排除在我的存储库实现之外,但我也希望尽可能在我的连接中添加过滤器。
编辑:这是一个答案,显示我们如何成功支持 ThenInclude 支持直到现在
关于将 Entity Framework 功能隐藏在“通用存储库”后面然后询问如何重新公开“抽象”功能的每个问题:通过首先不这样做.
或者,或者,通过修改您的方法,使其接受与
Func<Expression<whatever>>
相同的 Include()
,这样您就可以将其转发给 EF(并将您的“通用”存储库绑定到 EF 的功能,因为其他 ORM/DAL 不提供具有相同构造的相同功能)。