【发布时间】:2011-05-24 10:16:02
【问题描述】:
我想听听一些关于我正在尝试实施的方案的反馈。我目前已经使用 NHibernate 的 Criteria API 实现了这个场景,我想知道是否有任何类似的东西是为 Entity Framework 4.1 实现的。
我需要最终用户可以从 UI 中选择过滤条件,从而构建一个可以包含复杂 AND/OR 条件的查询。
例如:用户可以说:我想要(Zip Code = 92037 AND Gender = F) OR (ZipCode = 92101 and Gender = M)的学生
或
我想要(State = CA OR State = FL) AND GPA = 4.0 AND GENDER = M的学生
这些查询通常使用前端的树形控件构建。
我目前正在使用 NHibernate 进行这项工作。 NHibernate 中的 Criteria API 非常适合执行此操作。但是,NHibernate 有一个重大错误,那就是它不允许在 1:many 表上进行多个连接。
所以例如如果我有一个包含 CATCODE(类别代码)和答案的表,NHibernate 目前不会让我使用 Criteria API 进行多次查询。
所以我不能为例如做:WHERE CATCODE = A and Answer in (A,B,C) AND CATCODE = B and Answer in (V,H,Y)。
由于这个限制,我一直在尝试从 NHibernate 迁移到实体框架。我不知道是否有一种使用 API 来做这类事情的好方法。
谁能告诉我实现此类功能的更好解决方案(如果有的话)?
如果有解决此问题的方法,我很乐意听取 NHibernate 和 EF 专家的意见。
【问题讨论】:
标签: entity-framework architecture entity-framework-4.1 nhibernate-criteria