Использование ключевого слова let в запросе LINQ с EF 4.3

У меня простая проблема с 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 () заключается в том, что в таблице «Сотрудники» не должно быть более одной записи для каждого пользователя. Это ошибка дизайна, и мне нужно с ней разобраться. Так что я просто хочу первую.

5
задан John 28 February 2012 в 10:12
поделиться