У меня есть несколько таблиц table1
, table2
, table3
и table4
.Все эти таблицы имеют отношение MyID
.Table2
может иметь одну или несколько записей, но меня интересует только последняя вставленная запись.
Я написал следующий запрос, чтобы получить желаемый результат, однако table2
по-прежнему возвращает более однойзапись.
var query = (from t1 in table1
join t2 in table2
on t1.MyID equals t2.MyID
into t2Table
join t3 in table3
on t1.MyID equals t3.MyID
into t3Table
join t4 in table4
on t1.MyID equals t4.MyID
into t4Table
where t1.MyID == 1
select new MyViewModel()
{
A = t1.A,
B = t1.B,
C = t1.C,
D = t2Table
.OrderByDescending(x => x.MyDate)
.Select(x => x.D).First(),
E = t2Table
.OrderByDescending(x => x.MyDate)
.Select(x => x.E).First(),
F = t2Table
.OrderByDescending(x => x.MyDate)
.Select(x => x.F).First(),
G = t3Table.Select(c => new TModel()
{
Col1 = c.Col1,
Col1 = c.Col2,
}).ToList(),
H = t4Table.Select(l => new PModel()
{
Col1 = l.Col1,
Col2 = l.Languages.Col2,
}).ToList(),
});
Для D, E, F
я также попытался выбрать .Max()
, но результат все тот же.Как я могу получить последнюю запись из table2
, используя join
?