Joh*_*ohn 5 .net c# linq entity-framework let
我有简单的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
};
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,因为这First()
是非法的.First()只能在a结束时出现select
.什么也行不通的是在以前的查询中选择员工,如下所示:
var employee = from e. in context.Employees.....
Run Code Online (Sandbox Code Playgroud)
......然后说let e = employee
而不是let e = u.Employees().First()
我不确定使用是否正确.我以为是子查询.
First()
调用的原因是Employees表不应为每个用户提供多个条目.这是设计中的一个错误,我现在必须处理它.所以我只想要第一个.
var result = from u in context.users
let e = u.Employees.FirstOrDefault(x => x.bossId == u.UsrId)
where u.UsrId = 2
select new { UserId = u.UsrId, FirstName = e.FirstName };
Run Code Online (Sandbox Code Playgroud)
只是一个提示,未经测试。