2014-03-26 21 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

回答

相关问题