gpt4 book ai didi

c# - 使用 Entity Framework 从 2 个表返回数据

转载 作者:太空狗 更新时间:2023-10-29 22:27:45 24 4
gpt4 key购买 nike

我正在使用 MVC3 和 Entity Framework,但我到了需要来自不同表的更多数据的地步。通常我会做这样的事情来从表中获取数据:

Table: Users
id
username

在代码中我会做这样的事情来获取所有用户:

public static IEnumerable<Users> GetUsers( int userId )
{
MyEntities ent = new MyEntities();

return from g in ent.Users
where g.OwnerUserId == userId
select g;
}

所以这会让我所有的用户都回来。


但是用户可以加入一个组,我必须从特定组中获取所有用户名。

Table: userGroups
id
fk_user_id
fk_group_id

现在如果我使用这段代码:

public static IEnumerable<userGroups> GetUsersFromGroup( int groupId )
{
MyEntities ent = new MyEntities();

return from g in ent.userGroups
where g.OwnerUserId == userId
select g;
}

现在显然这只会返回“userGroups”表中的数据。但不知何故,我还需要用户表中的用户名。我如何才能获取该数据并仍然将我的“userGroups”作为 IEnumerable 返回?

在 SQL 中,我会简单地执行一个 LEFT JOIN,但我无法真正弄清楚它在这里是如何工作的。

最佳答案

可能是这样的:

var query = from g in ent.userGroups
join u in ent.Users on g.fk_user_id equals u.userID
select new { g, u, });

或者使用 LEFT JOIN

var query = (from g in ent.userGroups
from u in ent.Users.Where(a => a.fk_user_id == u.userID).DefaultIfEmpty()
select new { g, u, });

关于c# - 使用 Entity Framework 从 2 个表返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9977798/

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