NHibernate标准限制与表达

Dar*_*kas 23 nhibernate nhibernate-criteria

如果我在Internet中搜索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>();
Run Code Online (Sandbox Code Playgroud)

Rip*_*ppo 18

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

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

同样根据这个帖子由Ayende: -

更喜欢使用Restrictions而不是Expression类来定义Criteria查询.


小智 14

在源代码中namespace NHibernate.Criterion.Expression是说"这个类是半弃用的使用限制"