使用通用存储库方法,您如何提供 EF 在其最新版本中具有的导航属性过滤器?

问题描述 投票:0回答:1

我已经有了一个有效的解决方案,可以将夹杂物转换为它们的点路径,以支持

.Include
/
.ThenInclude
。但是,EF 现在允许您添加诸如
.Include(x => x.MyNavigations.Where(predicate))
之类的过滤器,而点路径表示法对此不起作用。我真的很想将特定于 EF 的依赖项排除在我的存储库实现之外,但我也希望尽可能在我的连接中添加过滤器。

编辑:这是一个答案,显示我们如何成功支持 ThenInclude 支持直到现在

c# entity-framework entity-framework-core repository-pattern repository-design
1个回答
4
投票

关于将 Entity Framework 功能隐藏在“通用存储库”后面然后询问如何重新公开“抽象”功能的每个问题:通过首先不这样做.

或者,或者,通过修改您的方法,使其接受与

Func<Expression<whatever>>
相同的
Include()
,这样您就可以将其转发给 EF(并将您的“通用”存储库绑定到 EF 的功能,因为其他 ORM/DAL 不提供具有相同构造的相同功能)。

© www.soinside.com 2019 - 2024. All rights reserved.