如何在其他模型中加入模型列?

时间:2019-04-08 05:49:44

标签: c# asp.net-mvc entity-framework

我正在使用Entity Framework(DB First)开发简单的ASP .NET MVC Web应用程序。

我正在使用的第一个功能是“房间预订”。 为此,我有一个简单的模型:

public partial class Room
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Color { get; set; }
}

public partial class Reservation
{
    public int Id { get; set; }
    public int RoomId { get; set; }
    public int UserId { get; set; }
    public System.DateTime Start { get; set; }
    public System.DateTime Stop { get; set; }
    public string Description { get; set; }
}

public partial class User
{
    public int ID { get; set; }
    public string UserName { get; set; }
    public string FullName { get; set; }
}

我正在尝试创建UserReservations之类的View,但是我不知道如何在User.UserName中获得Room.NameReservation

@foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Description)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.RoomId)
                //Here I want to have Room Name instead of RoomId.
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Start)
            </td>
            <td>
                @Html.DisplayFor(modelitem => item.Stop)
            </td>
            <td>

            </td>
        </tr>
    }

如何在Room.Name模型中获得Reservation?我是否需要修改它(我认为将来会进行修改,所以将从数据库中更新模型,所有这些更改都将被丢弃)。

2 个答案:

答案 0 :(得分:0)

您可以将手动导航属性添加到R​​eservation中(将导航属性User和Room添加到Reservation中),之后,您需要一个用户,room属性来从Reservation中调用User.UserName和Room.Name: [Entity Framework - Add Navigation Property Manually

答案 1 :(得分:0)

您可以在数据库中使用外键。如果在Reservation->RoomIdRoom->Id之间使用外键,则您的Reservation类类似于上面。

public partial class Reservation
{
    public int Id { get; set; }
    public int RoomId { get; set; }
    public int UserId { get; set; }
    public System.DateTime Start { get; set; }
    public System.DateTime Stop { get; set; }
    public string Description { get; set; }
    public virtual Room Room{ get; set; } //your foreign table
}

因此您可以在视图中使用Reservation.Room.Name