我正在使用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.Name
和Reservation
。
@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
?我是否需要修改它(我认为将来会进行修改,所以将从数据库中更新模型,所有这些更改都将被丢弃)。
答案 0 :(得分:0)
您可以将手动导航属性添加到Reservation中(将导航属性User和Room添加到Reservation中),之后,您需要一个用户,room属性来从Reservation中调用User.UserName和Room.Name: [Entity Framework - Add Navigation Property Manually
答案 1 :(得分:0)
您可以在数据库中使用外键。如果在Reservation->RoomId
和Room->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