【发布时间】:2012-03-17 19:28:45
【问题描述】:
我有一个我无法弄清楚的简单 LINQ 问题。
我有一张桌子Users 和一张桌子Employees。 一个用户可以有 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() 调用是非法的。 First() 只能出现在 select 的末尾。
同样不起作用的是在以前的查询中选择员工,如下所示:
var employee = from e. in context.Employees.....
...然后说let e = employee 而不是let e = u.Employees().First()
我不确定 let 的使用是否正确。我认为它是用于子查询的。
调用First() 的原因是Employees 表中每个用户的条目不应超过一个。这是设计中的一个错误,我现在必须处理它。所以我只想要第一个。
【问题讨论】:
标签: c# .net linq entity-framework let