Ajouter des Restrictions à une jointure à l'aide de CreateCriteria dans nHibernate

Question de débutant, j'en suis sûr:

Je suis en train de faire une jointure entre 2 tables et de restreindre le résultat en même temps comme ceci:

var bookings = session.CreateCriteria<Booking>("p")
                       .CreateCriteria("p.BookingLocations", JoinType.InnerJoin)
                       .Add(Restrictions.Eq("p.BookingLocations.locationID", locationId))
                       .SetMaxResults(30)
                       .List<Booking>();

J'obtiens l'erreur:
N'a pas pu résoudre la propriété: BookingLocations.locationID de: Réservation

Je peux voir que la Réservation.BookingLocation contient beaucoup de disques, il est l'un de beaucoup de relation entre la Réservation et le BookingLocation, mais je ne suis pas sûr si c'est la cause du problème.

Je suppose que si c'était que j'avais besoin de faire quelque chose comme:

.Add(Restrictions.Eq("p.BookingLocations.first().locationID", locationId))

...mais sans doute que ça ne marcherait pas 😉

Classes

public class Booking
{
    public virtual int Id { get; set; }
    public virtual Int32 bookingID { get; set; }
    public virtual Int32 bookingAdminID { get; set; 
}

public class BookingLocation
{
    public virtual int Id { get; set; }
    public virtual Int32 bookingID { get; set; }
    public virtual Int32 locationID { get; set; } 
}

Mappages

 public BookingMap()
 {
    Table("Bookings");

    Id(x => x.Id).Column("ID");
    Map(x => x.bookingID).Column("BookingID");
    Map(x => x.bookingAdminID).Column("BookingAdminID");
 }

public class BookingLocation
{
    public virtual int Id { get; set; }
    public virtual Int32 bookingID { get; set; }
    public virtual Int32 locationID { get; set; } 
 }
InformationsquelleAutor iKode | 2012-02-03