C# 没有多个连接的Linq查询

C# 没有多个连接的Linq查询,c#,linq,C#,Linq,我怎样才能得到一份工作 List<BONET_Website_Users> 不使用linq进行多个连接 我的桌子: 可能吗 var users = Context.BONET_Website_Users .Where(u=>u.BONET_Roles .Any(r=>r.BONET_ROLES_Permissions .Any(p=>p.BONET_Permissions.Description

我怎样才能得到一份工作

List<BONET_Website_Users> 
不使用linq进行多个连接

我的桌子:

可能吗

  var users = Context.BONET_Website_Users
     .Where(u=>u.BONET_Roles
          .Any(r=>r.BONET_ROLES_Permissions
                .Any(p=>p.BONET_Permissions.Description  == "R")))
     .ToList();

不要从连接的角度考虑问题,大多数情况下,如果您使用连接编写linq查询,您的做法是错误的,只需像处理一堆嵌套集合一样处理图形,让linq处理查询生成,您不需要“从SQL的角度考虑”。

我不知道您为什么要在没有linq的情况下这样做,但如果Alluser是List类型,则这将起作用<;僵尸网络\u网站\u用户>;它包含了一切

var result = new List<BOTNET_Website_User>();

foreach (var user in allUsers)
{
    if (user.BONET_Permissions == "R")
    {
        result.Add(user);
    }
}
var result=newlist();
foreach(allUsers中的var用户)
{
如果(user.BONET_Permissions==“R”)
{
结果。添加(用户);
}
}

编辑--抱歉,您发布的图像已被阻止,因此我无法查看您发布的表。我假设这一切都在内存中。

连接有什么问题?这是一个实体框架(LINQ到SQL)查询还是内存中的LINQ到对象查询?如果您正在编写一个大型查询,您应该知道幕后的SQL是什么,有时候LINQ看起来很漂亮,但是SQL效率很低。LINQPad是一个很好的工具,因为您可以看到LINQ生成的SQL。了解生成的SQL与用SQL术语思考不同,如果您的LINQ代码看起来像SQL,那么您就错了。所以你必须把事情看做一张图表,想想你想得到什么和限制什么,而不是让我们一起去做所有我能想到的事情,然后决定以后做什么。谢谢。这正是我想要的。他从来没有说过他不使用LINQ就想这么做,请重新阅读他的问题。
var result = new List<BOTNET_Website_User>();

foreach (var user in allUsers)
{
    if (user.BONET_Permissions == "R")
    {
        result.Add(user);
    }
}