2017-03-01 47 views
-1
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擴展方法的正確語法,我沒有可以給我正確的一個?預先感謝您asp.net mvc 4 linq擴展方法語法加入

+0

如果您不能使用方法的語法,你爲什麼不使用查詢語法?如果涉及到連接,它更具可讀性。如果您需要使用查詢語法中不支持的方法,請將其分解爲兩個查詢。由於LINQ延期執行,效率並不低。 –

+0

我知道,但我試圖找到擴展方法。我似乎無法找到它。我需要有人曾與此! @TimSchmelter – user3026665

回答

1

您混淆了查詢和方法語法的錯誤方法。

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); 
+0

所以第二個是正確的? – user3026665

+0

他們都是對的。一種是方法語法,另一種是查詢語法。使用你發現的那個更容易。 –

+0

順便說一句,如果你需要linq加入,那麼你的數據設計可能會出錯。你應該很少需要加入。 –