在Hibernate中是否有针对DetachedCriteria这样的查询条件的.net类,但不依赖于Hibernate?

在Hibernate中是否有针对DetachedCriteria这样的查询条件的.net类,但不依赖于Hibernate?,.net,conditional-statements,.net,Conditional Statements,我正在编写一个通用DAO接口,并且面临一个通用查询操作中的困难。查询操作需要一组查询条件。我想给出一个界面,比如 IList<TEntity> Query(DetachedCriteria criteria); IList查询(DetachedCriteria); 但这使得接口依赖于nHibernate。如果我想使用Linq或普通SQL,将DetachedCriteria转换为它们并不容易 我希望有一个类可以像nHibernate中的DetachedCriteria一样包装查询条

我正在编写一个通用DAO接口,并且面临一个通用查询操作中的困难。查询操作需要一组查询条件。我想给出一个界面,比如

IList<TEntity> Query(DetachedCriteria criteria);
IList查询(DetachedCriteria);
但这使得接口依赖于nHibernate。如果我想使用Linq或普通SQL,将DetachedCriteria转换为它们并不容易

我希望有一个类可以像nHibernate中的DetachedCriteria一样包装查询条件,但可以转换为DetachedCriteria、linq或普通SQL


我曾经用Java编写过一个类,它包装了查询条件,并可以转换为普通SQL。我想知道是否有任何现有的项目在网络,可以做类似的工作

您可以使用IQueryable并构建表达式树(即.NET Framework用于构建常规查询的方式),也可以实现自己的查询。

如何

Expression<Predicate<TEntity>>
表达式
然后可以解析表达式树并将其转换为SQL。对于linq,您甚至可以简单地将其转换为具有相同谓词的where子句


描述了完整Linq提供程序的构建,但您可能只需要where子句的等效项。

谢谢您的建议!非常感谢你给我提供了一份好材料。我会找一个ICriteria供应商。