NHibernate自引用查询

时间:2010-07-14 08:19:00

标签: c# nhibernate criteria

你如何在NHibernate中写这个?

criteria
    .CreateAlias( "CreatorObject.LastCreated", "me" )
    .Add( Restrictions.Eq( this, "me" ) );

编辑:不使用sql

这样的东西

其中有两个表TypeA和TypeB,其中typeB创建typeA对象并保持对最后创建的对象的引用。

criteria
.Add( Restrictions.IdEq( Projections.SqlProjection( "(Select LastCreated From Creators Where Creators.Id = CreatorId) as MasterId", new[] { "MasterId" }, new[] { NHibernateUtil.Int32 } ) ) );

1 个答案:

答案 0 :(得分:0)

所以,如果你有像

这样的东西
public class SomeClass {
  public SomeClass LastCreated { get; set;}
  public SomeClass CreatorObject {get; set;}
}

你可以这样写:

criteria.Add(Restrictions.Eq("CreatorObject.LastCreated", this));