Отображение / получение значения из связанной таблицы по идентификатору с Entity Framework в Asp.Net Core - PullRequest
0 голосов
/ 23 июня 2019

Я работаю над приложением Asp.Net Core.У меня есть 4 таблицы, которые связаны между собой ...

public partial class AlarmInstall
{
    public int AlarmInstallId { get; set; }
    public int HouseId { get; set; }
    public string Model { get; set; }

    public virtual House House { get; set; }
}

public partial class House
{
    public House()
    {
        AlarmInstall = new HashSet<AlarmInstall>();
    }

    public int HouseId { get; set; }
    public int StreetId { get; set; }
    public string DoorNr { get; set; }
    public int CityId { get; set; }

    public virtual City City { get; set; }
    public virtual Street Street { get; set; }
    public virtual ICollection<AlarmInstall> AlarmInstall { get; set; }
}

public partial class Street
{
    public Street()
    {
        House = new HashSet<House>();
    }

    public int StreetId { get; set; }
    public string StreetName { get; set; }

    public virtual ICollection<House> House { get; set; }
}

public partial class City
{
    public City()
    {
        House = new HashSet<House>();
    }

    public int CityId { get; set; }
    public string CityName { get; set; }

    public virtual ICollection<House> House { get; set; }
}

Скафолфинг всех классов, которые я могу просматривать с AlarmInstalls / index.cshtml Но только модель тревоги и DoorNr.Я хотел бы как-то показать значения StreetName и CityName, связанные с HouseId

       <th>
            @Html.DisplayNameFor(model => model.Model)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.House)
        </th>
        <th></th>
    </tr>
</thead>
<tbody>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Model)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.House.DoorNr)
        </td>

...

Я хочу просмотреть все установленные мной аварийные сигналы со следующей информацией AlarmeId - StreetName -DoorNr - CityName Я искал решение или примеры, но не могу заставить его работать.Заранее спасибо за любую помощь !!!

1 Ответ

0 голосов
/ 24 июня 2019

Вы можете использовать метод Include для указания связанных данных, которые будут включены в результаты запроса. Вы также можете детализировать отношения, чтобы включить несколько уровней связанных данных, используя метод ThenInclude. Обратитесь к приведенному ниже коду

var result= _context.AlarmInstall
                    .Include(a => a.House)
                         .ThenInclude(h=>h.Street)
                    .Include(a=>a.House)
                         ThenInclude(h=>h.City);

Ссылка: Загрузка связанных данных

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