Как получить объединенную модельную колонку в другой модели? - PullRequest
0 голосов
/ 08 апреля 2019

Я работаю над простым веб-приложением ASP .NET MVC, которое использует Entity Framework (DB First).

Первый функционал, над которым я работаю, это «Бронирование номеров».Для этого у меня есть простая модель:

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, но я не знаю, как получить 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 модели?Нужно ли мне его модифицировать (я думаю, что в будущем возможны модификации, поэтому модель будет обновляться из базы данных, и все эти изменения будут отбрасываться).

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Вы можете использовать внешний ключ в своей базе данных. Если вы используете внешний ключ между Reservation->RoomId и Room->Id, ваш класс резервирования такой же, как указано выше.

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по вашему мнению

0 голосов
/ 10 апреля 2019

вы можете добавить свойство ручной навигации в Reservation (добавить свойство навигации User и Room в Reservation), после этого у вас есть пользователь, свойство комнаты для вызова User.UserName и Room.Name из Reservation: [ Entity Framework -Добавить свойство навигации вручную

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...