gpt4 book ai didi

sql - 如何在 Entity Framework 方法语法中应用 SQL in 关键字?

转载 作者:行者123 更新时间:2023-12-04 13:48:08 25 4
gpt4 key购买 nike

如何在 Entity Framework 方法语法中应用 SQL in 关键字?

例如,如果我想在 Entity Framework 中编写查询

select roleName from Roles where rold_id in (select role_id from UserRoles where user_id = 1);

那么,如何在 Entity Framework 方法语法中应用它?

最佳答案

内部查询将单独完成:

var inner = UserRoles.Where(r => r.user_id == 1)
.Select(r => r.role_id);

然后外层会使用内层的.Contains方法。

var roleNames = Roles.Where(r => inner.Contains(r.role_id))
.Select(r => r.roleName);

您可以将它们全部合并到一个查询中,但这是最明智的方法。 Entity Framework 使用延迟查询,因此它仍然可以高效地执行此操作。

编辑:为了完整起见,这里有一个单行版本:

var roleNames = Roles.Where(r => UserRoles
.Where(ur => ur.user_id == 1)
.Select(ur => ur.role_id)
.Contains(r.role_id))
.Select(r => r.roleName);

简而言之,与其说是“B 在集合 A 中”,不如说是“集合 A 包含 B”。

关于sql - 如何在 Entity Framework 方法语法中应用 SQL in 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31773757/

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