【发布时间】:2013-05-09 18:53:14
【问题描述】:
我在我的数据访问层中使用实体框架,我需要支持通过 UI 构建动态查询(例如(Name == "John" AND Age > 25).TOP(100).ORDERBY(LastName))。
我打算使用QueryBuilder 来创建动态查询。为此,我正在考虑创建如下结构:
- 我的业务实体层中的一个
FilterCondition类,它可以包含Name is equal to John之类的条件。 -
FilterConditionsToQuery类somewhere,它将List<FilterCondition>转换为使用QueryBuilder的查询。
我应该在数据访问层中创建FilterConditionsToQuery 类并在我的 UI 层中直接引用它,还是应该创建一个存储库?对于 MVVM WPF 应用程序来说,更好的方法是什么?
【问题讨论】:
-
为此您不需要存储库。
-
@MikeSW,我的意思是“我应该在我的存储库中实现该功能吗?”,抱歉它含糊不清。
-
您仍然不需要存储库 :) EF 通过 LINQ 进行动态查询。实施 repo 意味着您必须创建自己的 FIlterCONditions 需要“转换”为 Linq。如果您不想与 EF 耦合,repo 可以帮助您的唯一情况是。但是这里有很多工作,我不知道是否值得
-
@MikeSW,我知道这一点。我的意思是存储库将以某种方式实现。是否实施不是我想做的决定。
标签: c# entity-framework architecture repository-pattern query-builder