Entity framework 使用实体框架(EF)进行动态数据查询

Entity framework 使用实体框架(EF)进行动态数据查询,entity-framework,architecture,entity-framework-4.1,nhibernate-criteria,Entity Framework,Architecture,Entity Framework 4.1,Nhibernate Criteria,我希望听到一些关于我正在尝试实现的场景的反馈。我目前已经使用NHibernate的CriteriaAPI实现了这个场景,我想知道在EntityFramework4.1中是否实现了类似的东西 我需要最终用户可以从UI中选择过滤条件,从而构建一个可以包含复杂和/或条件的查询 例如:用户可以说:我希望学生具有(邮政编码=92037,性别=F)或(ZipCode=92101,性别=M) 或 我希望学生的成绩是(State=CA或State=FL),GPA=4.0,性别=M 这些查询通常使用前端的树控件构

我希望听到一些关于我正在尝试实现的场景的反馈。我目前已经使用NHibernate的CriteriaAPI实现了这个场景,我想知道在EntityFramework4.1中是否实现了类似的东西

我需要最终用户可以从UI中选择过滤条件,从而构建一个可以包含复杂和/或条件的查询

例如:用户可以说:我希望学生具有
(邮政编码=92037,性别=F)或(ZipCode=92101,性别=M)

我希望学生的成绩是
(State=CA或State=FL),GPA=4.0,性别=M

这些查询通常使用前端的树控件构建

我目前正在使用NHibernate进行此项工作。NHibernate中的Criteria API非常适合这样做。然而,NHibernate有一个主要缺陷,那就是它不允许在1:many表上进行多个联接

例如,如果我有一个包含CATCODE(类别代码)和答案的表,NHibernate目前不允许我使用CriteriaAPI进行多个查询

例如,我不能这样做:
,其中CATCODE=A,回答(A,B,C),CATCODE=B,回答(V,H,Y)

由于这个限制,我一直试图从NHibernate迁移到实体框架。我不知道是否有一种很好的方法可以使用API来做这类事情

有谁能告诉我一个更好的解决方案来实现这样的功能吗


如果有办法解决这个问题,我很想听听NHibernate和EF专家的意见。

我真的不知道NHibernate或实体框架以外的任何其他或/M,但假设您有一个名为Category的实体,并且Category与答案相关(例如,每个类别都有许多答案)。 因此,类别实体如下所示:

public class Category {
    public virtual string CATCODE{get;set}
    public virtual IList<Answer> Answers{get;set;}
}

我甚至确信有更好的方法来编写这个查询,但关键是它是可能的。

我真的不知道NHibernate或任何其他或/M,除了实体框架,但假设您有一个名为Category的实体,并且Category与答案相关(例如,每个类别都有许多答案)。 因此,类别实体如下所示:

public class Category {
    public virtual string CATCODE{get;set}
    public virtual IList<Answer> Answers{get;set;}
}
我甚至确信有更好的方法来编写这个查询,但关键是它是可能的