2010-07-14 4 views
0

Comment l'écrivez-vous dans NHibernate?Requête d'auto-référencement NHibernate

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

Edit: quelque chose comme cela sans l'aide sql

Là où il y a deux tables TypeA et TypeB où typeB crée des objets TypeA et conserve une référence au dernier objet créé.

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

Qu'est-ce que SQL seriez-vous attendez de cette requête? –

+0

voir les modifications ci-dessus –

Répondre

0

Donc, si vous avez quelque chose comme

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

vous pourriez écrire quelque chose comme:

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