C# asp.net mvc 4 linq扩展方法语法联接

C# asp.net mvc 4 linq扩展方法语法联接,c#,asp.net,asp.net-mvc,linq,C#,Asp.net,Asp.net Mvc,Linq,我有这段代码示例,我已经搜索了这个linq扩展方法的正确语法,但是我还没有找到正确的语法?请提前感谢您您以错误的方式混合了查询和方法语法 var model = _db.Seuni .Join(from o in _db.Keuni join c in _db.Seuni on o.klasaid equals c.klasaid

我有这段代码示例,我已经搜索了这个linq扩展方法的正确语法,但是我还没有找到正确的语法?请提前感谢您

您以错误的方式混合了查询和方法语法

 var model = _db.Seuni
                .Join(from o in _db.Keuni
                      join
                      c in _db.Seuni 
                      on o.klasaid equals c.klasaid
                          select new {o.emriklases,c.emristudent,c.studentid,c.nota })
                       .OrderByDescending(r => r.nota)
或使用查询(订单方法)语法


如果不能使用方法语法,为什么不使用查询语法?如果涉及到连接,它的可读性会更好。如果需要使用查询语法不支持的方法,请将其拆分为两个查询。由于LINQ的延迟执行,它的效率并没有降低。我知道,但我正在尝试找到扩展方法。我似乎哪里也找不到它。我需要有人处理过这个问题@他们两人都是对的。一个是方法语法,另一个是查询语法。使用你觉得更简单的方法。顺便说一句,如果你需要与linq连接,那么你的数据设计可能有问题。您应该很少需要join.when我循环@foreach(模型中的var项){@item.studentid我也想打印klasaName,但当我打印@item时……它不会打印klasaName。请慢慢打印。首先在LinqPad中尝试Linq。然后创建视图模型并使用它。Linq查询语法是一个问题,利用razor中的结果是另一个问题。Cetin我缺少什么?即使使用您的查询,它也不会显示kla在@item后面加上saname。
 var model = _db.Seuni
            .Join(_db.Keuni,
                  c => c.klasaid,
                  o => o.klasaid,
                  (c, o) => new { o.emriklases, c.emristudent, c.studentid, c.nota })
            .OrderByDescending(r => r.nota);
// query syntax
var model = (from o in _db.Keuni
            join c in _db.Seuni on o.klasaid equals c.klasaid
            select new { o.emriklases, c.emristudent, c.studentid, c.nota })
            .OrderByDescending(r => r.nota);