2010-07-14 48 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));