2010-07-14 20 views
0

你如何在NHibernate中编写这个?NHibernate自引用查询

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

编辑:这样的事情,而无需使用SQL

如果有两个表类型A和地方的TypeB的TypeB创建的typeA对象,并保持到最后创建的对象的引用。

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

什么SQL,你会从这个查询被期待? – 2010-07-14 11:46:55

+0

参见上面的编辑 – 2010-07-14 23:05:22

回答

0

所以,如果你有类似

public class SomeClass { 
    public SomeClass LastCreated { get; set;} 
    public SomeClass CreatorObject {get; set;} 
} 

你可以写这样的:

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