Возможно ли объединение двух таблиц без внешних ключей?
Редактировать: Хорошо, я уверен, что это возможно, но я неполностью уверен, как это сделать.
Классы
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; }
}
Отображения
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; }
}
Мне нужно сделатьпростое внутреннее соединение на bookingID обеих таблиц выше.Как мне это сделать?
Я пытался:
var hql = "select b from Booking as b inner join BookingLocation as bl on b.bookingID = bl.bookingID";
var bookings = session.CreateQuery(hql).List<object[]>();
, но я получаю сообщение об ошибке:
Семантическое исключение не было обработано кодом пользователя. Ожидается путь дляприсоединиться!
[выбрать b из бронирования как b внутреннее присоединение BookingLocation как bl на b.bookingID = bl.bookingID]
Я использую этот подход, потому что могуЛегко построить связь между этими двумя таблицами в отображении.Нужно ли иметь отношения, чтобы сделать объединение?