【问题标题】:Multiple join using Entity Framework使用实体框架进行多重连接
【发布时间】:2015-12-15 10:54:48
【问题描述】:

我正在考虑将网站从 ASP.NET 网页迁移到 MVC。我需要了解如何使用实体框架进行多重连接。

我目前有 3 个数据库表,每个表都有一个模型。

  • 财产
  • 房间
  • 房间类型

下面的代码从房间表中获取每个属性的所有信息,但它只给了我来自Rooms 表的RoomTypeID。我需要的是使用该 ID 从RoomType 表中获取RoomType

@model manage.stayinflorida.co.uk.DataModels.Property_Info

    @foreach (var item in Model.RoomInfoes)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.RoomTypeID)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.RoomDescription)
            </td>
        </tr>
    }

【问题讨论】:

标签: asp.net asp.net-mvc entity-framework entity-framework-6


【解决方案1】:

通常使用实体框架,如果实体具有外键关系,您将获得一个导航属性。

这意味着您也可以从相关类型访问该属性。

如果您的 RoomInfos 类有一个名为 RoomType 类型为 RoomType 的属性(链接到 RoomTypeID),则您可以在模型中访问它。

下面显示了一个示例 - 该示例假设您在“RoomType”上有一个名为“Name”的属性。

@model manage.stayinflorida.co.uk.DataModels.Property_Info

@foreach (var item in Model.RoomInfoes)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.RoomType.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.RoomDescription)
        </td>
    </tr>
}

有关导航属性的更多信息,请参阅this link

【讨论】:

  • 这正是我所追求的,谢谢 Rob。导航属性的链接也很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
相关资源
最近更新 更多