在 LINQ 中,以下两者有何不同:
EFDbContext _db = new EFDbContext();
1)_db.UserQuizes
.Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId)
.Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)).First()
2)_db.UserQuizes
.Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question))
.Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId).First()
3)_db.UserQuizes
.Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question))
First(uq => uq.UserId == currentUserId && uq.QuizId == quizId)
注意第一个查询在 where 之后使用 include,第二个查询在 where 之前使用 include,但结果相同。如何查看实际的 SQL 查询?在这种特殊情况下,我的主要目标是性能,我可以改进查询吗?我需要更改两个属性:UserQuizes 属性和 UserQuizes-> VerbalQuizes-> Question 属性。
将其拆分为两个查询或者像现在这样使用,哪种方式更好呢?