2014-03-26 23 views
1

我一直在使用EF6我的應用程序,並會很快轉移到6.1。通常情況下我所有的EF與LINQ處理這樣的:當我用EF6查詢數據庫時,使用LINQ有什麼好處?

 var exams = _examsRepository 
      .GetAll() 
      .Where(q => q.SubjectId == subjectId) 
      .Include(q => q.Tests) 
      .ToList(); 

但是我只是一個建議,使用這個特定的查詢:

 var exams1 = (from ex in DbContext.Exams 
        join t in DbContext.Tests on ex.ExamId equals t.ExamId 
        join ut in DbContext.UserTests on t.TestId equals ut.TestId 
        where ut.UserId == "123" 
        select new { ex, t, ut }).ToList(); 

有人能告訴我什麼是使用的優點第二種方式。我認識的一個優點是,它似乎我可以做的事情不能做的第一種方式(還沒有人能夠在我們所需要的在第二個例子中第一路碼。如果有什麼任何的其他的優勢是什麼?他們是唯一兩種推薦方式,我可以使用EF來查詢SQL Server 2012的數據庫。

我想更多地瞭解如何在第二路碼。有誰知道這解釋了一些很好的聯繫?

+1

這兩種形式是LINQ,前者只使用表達式語言的語法。據我所知,兩者之間沒有功能上的區別,乍一看第二個例子不應該很難轉換爲前者。 –

+0

@JeroenVannevel - 我開了一個關於這個問題,並沒有人能夠做到這一點/搞不定。我很快就會開始賞金。 – Melina

回答

相關問題