Я пытаюсь присоединиться к двум моделям, а затем выбрать значения из объединенной таблицы. То, что я реализовал, на сегодняшний день - это мое понимание и сбор информации из разных решений в SO. Но в x я всегда получаю значения из первого контекста context.EventSessionTeamModels
, но ничего из второго. Но все, начиная от блока Select
, необходимо извлечь из второго context.SessionModels
. Возможно, я присоединился к ним неправильно. Мне нужно знать, что нужно сделать. Сообщите мне, нужна ли какая-либо другая часть кода, кроме кода ниже.Объединение нескольких таблиц в asp.net mvc5 с использованием Entity Framework
IQueryable<SessionShortModel> shortInfoSession = context.EventSessionTeamModels
.Join(context.SessionModels, x => x.session_id, y => y.session_id, (x, y) => x)
.Where(x => x.event_id == eid && x.bp_id == attendeeId && x.role_code == "ATD")
.Select(x => new SessionShortModel {
StartTime = x.start_date,
EndTime = x.end_date,
Day = DbFunctions.TruncateTime(x.start_date),
Year = x.start_date.Year,
Month = x.start_date.Month,
Name = x.session_name
});
Я согласен с тем, что свойства навигации более подходят, чем объединения, но 'Include' здесь не имеет никакого эффекта, потому что запрос заканчивается проецированием. –
EventSessionTeamModels должны иметь прокси IEnumerabe sessionsModels = get; set; и отношения в сопоставлении [info] (http://www.entityframeworktutorial.net/code-first/configure-one-to-many-relationship-in-code-first.aspx) –
J4ime