Извлечение поля с использованием лямбды из базы данных
У меня проблема при попытке объединить несколько таблиц в базе данных. На самом деле, я не совсем уверен, какой первичный ключ я должен использовать при создании соединения. Итак, допустим, у меня есть три таблицы, каждая из которых имеет собственный закрытый ключ с именами TownID, HotelID и RoomID. Соединение осуществляется через внешние ключи в таблице Hotel. Поэтому мой вопрос заключается в том, как с помощью данного идентификатора города можно извлечь информацию об определенном номере в отеле?
заранее спасибо
РЕДАКТИРОВАТЬ: отредактировал ошибку с внешним ключом
1 ответ
Table Town
-----------
TownId (PK)
TownName
Table Hotel
------------
HotelId (PK)
HotelAddress
HotelName
HotelTownId (FK)
HotelRoomId (FK)
Table Room
------------
RoomId (PK)
RoomNumber
При условии, что выше приведена схема этих таблиц, тогда вам нужно что-то вроде этого:
var result = (from h in db.Hotel
join t in db.Town
on h.HotelTownId equals t.TownId
join r in db.Room
on h.HotelRoomId equals r.RoomId
where t.TownId == townId
select r.RoomNumber).FirstOrDefault();
Вы можете написать вышеупомянутый запрос, используя лямбды. Однако в этой форме более читабельным.