У меня простая проблема с LINQ, которую я не могу понять.
У меня есть таблица Пользователи
и таблица Сотрудники
. У одного пользователя может быть 0 ... n сотрудников.
Я бы хотел сделать что-то вроде этого:
var result = from u in context.users
where u.UsrId = 2
let e = u.Employees.First()
select new
{
UserId = u.UsrId,
FirstName = e.FirstName
};
Конечно, это не работает, потому что вызов First ()
недопустим. Первый () может стоять только в конце select
.
Что также не помогло, так это выбрать сотрудника в предыдущем запросе следующим образом:
var employee = from e. in context.Employees.....
... и затем сказать let e = employee
вместо let e = u.Employees (). First ()
Я не уверен, правильно ли используется let. Я думал, это для подзапросов.
Причина вызова First ()
заключается в том, что в таблице «Сотрудники» не должно быть более одной записи для каждого пользователя. Это ошибка дизайна, и мне нужно с ней разобраться. Так что я просто хочу первую.