gpt4 book ai didi

c# - 遍历实体引用的方式是否正确?

转载 作者:太空宇宙 更新时间:2023-11-03 14:31:23 24 4
gpt4 key购买 nike

我想让所有具有特定角色的用户加入用户名列表。

正在使用 .Include 来包含所有用户,并通过 UsersReference遍历与该角色关联的所有用户的最佳方式?

我注意到我无法执行 foreach(User user in role.Users) 但 UsersReference 似乎有效,但它应该如何完成?正在浏览引用资料?

using (var context = new MyEntities())
{
List<string> users = new List<string>();

Role role = (from r in context.Roles.Include("Users")
where r.RoleName == roleName
select r).FirstOrDefault();

foreach (User user in role.UsersReference)
users.Add(user.UserName);

return users.ToArray();
}

最佳答案

您的 Role 表是否可能具有 Users 属性?我认为它会将导航属性命名为 Users,而不是 UsersReference。我不使用 EF,但我看到的所有示例都在表格后命名属性。据我所知,它始终实现 IEnumerable,因此您应该能够在 foreach 中使用它。

如果你设置正确,我认为你只需要:

using (var context = new MyEntities())
{
return context.Roles
.Where( r => r.RoleName == roleName )
.SelectMany( r => r.Users )
.Select( u => u.UserName )
.ToArray();
}

关于c# - 遍历实体引用的方式是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487194/

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