NHibernate标准限制与表达

时间:2011-03-30 07:44:43

标签: nhibernate nhibernate-criteria

如果我在互联网上搜索NHibernate Criteria API查询示例,则会有使用限制的示例,而其他示例则使用Expression。这两者有什么不同?

例如:

posts = session.CreateCriteria<Post>()
    .Add(Expression.Eq("Id", 1))
    .List<Post>();

posts = session.CreateCriteria<Post>()
    .Add(Restrictions.Eq("Id", 1))
    .List<Post>();

3 个答案:

答案 0 :(得分:18)

我认为限制在NH2中发布,现在是受欢迎的方式。

根据Resharper,每当我使用Expression时,我都会提示Access to a static member of a type via a derived type

Ayende也according to this post: -

  

更喜欢使用限制   用于定义的Expression类   标准查询。

答案 1 :(得分:14)

namespace NHibernate.Criterion.Expression的源代码中说“此类已被半弃用使用限制”

答案 2 :(得分:1)

表达式继承自Restrictions,但建议使用Restrictions。表达式显然已被弃用。

根据Ayende (old post about NH 2.0),文档通常会引用限制。

相关问题