使用 lambda 从数据库中提取字段

Field extraction using lambda from a database

我在尝试加入数据库中的多个 table 时遇到问题。事实上,我不太确定在创建连接时应该使用哪个主键。因此,假设我有三个 table,每个都有自己的私钥,名为 TownID、HotelID 和 RoomID。连接是通过 table 酒店中的外键建立的。所以我的问题是如何使用给定的 townID 提取有关特定酒店房间的信息?

提前致谢

编辑:用外键编辑了错误

Table Town
-----------
TownId (PK)

TownName

Table Hotel
------------
HotelId (PK)

HotelAddress

HotelName

HotelTownId (FK)

HotelRoomId (FK)

Table Room
------------
RoomId (PK)

RoomNumber

前提是以上是这些表的schema,那么你需要这样:

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();

您可以使用 lambda 编写上述查询。然而,这种形式更具可读性。