câu hỏi Beginner tôi chắc chắn rằng:Thêm Hạn chế đến một tham gia sử dụng CreateCriteria trong nHibernate
tôi đang cố gắng để làm một tham gia giữa 2 bảng và hạn chế kết quả cùng lúc như thế này:
var bookings = session.CreateCriteria<Booking>("p")
.CreateCriteria("p.BookingLocations", JoinType.InnerJoin)
.Add(Restrictions.Eq("p.BookingLocations.locationID", locationId))
.SetMaxResults(30)
.List<Booking>();
tôi nhận được lỗi: không thể giải quyết bất động sản: BookingLocations.locationID của: Đặt
tôi có thể thấy rằng Booking.BookingLocati trên có chứa nhiều hồ sơ tại đó là một trong nhiều tàu quan hệ giữa Booking và BookingLocation, nhưng tôi không chắc đó có phải là nguyên nhân của vấn đề hay không.
Tôi đoán nếu nó là tôi cần phải làm điều gì đó như:
.Add(Restrictions.Eq("p.BookingLocations.first().locationID", locationId))
... nhưng chắc chắn từ đó sẽ không làm việc;)
Lớp
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; }
}
Ánh xạ
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; }
}
Chỉ cần những gì tôi cần, cảm ơn! – iKode