Как сначала создать таблицу соединений, используя базовый код EF
С текущей структурой объекта вы можете написать соединение между всеми тремя наборами данных, а затем выполнить группировку по DeckId и получить результаты.
Я бы создал 2 класса модели представления для этого сгруппированного представления данных для моего представления.
public class DeckVm
{
public int Id { set; get; }
public string Name { set; get; }
public IEnumerable<CardVm> Cards { set; get; }
}
public class CardVm
{
public int Id { set; get; }
public string Name { set; get; }
}
Теперь присоединиться
var decksWithCards = (from dc in db.DeckCards
join d in db.Decks on dc.DeckID equals d.ID
join c in db.Cards on dc.CardID equals c.ID
select new { DeckId = d.ID, DeckName = d.Name,
CardId = c.ID, CardName = c.Name })
.GroupBy(x => x.DeckId, d => d,
(ky, v) =>
new DeckVm
{
Id = ky,
Name = v.FirstOrDefault().DeckName,
Cards = v.Select(h => new CardVm { Id = h.CardId, Name=h.CardName})
})
.ToList();
decksWithCards
будет a, List<DeckVm>
который вы можете передать на свой взгляд. Вы должны сделать свое представление строго типизированным, чтобыList<DeckVm>
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.