gpt4 book ai didi

c# - 在 EF 4.3 的 LINQ 查询中使用 "let"关键字

转载 作者:太空狗 更新时间:2023-10-29 23:17:05 24 4
gpt4 key购买 nike

我有一个无法解决的简单 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 表中每个用户的条目不应超过一个。那是设计中的错误,我现在必须处理它。所以我只想要第一个。

最佳答案

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 };

只是未经测试的提示。

关于c# - 在 EF 4.3 的 LINQ 查询中使用 "let"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com