【发布时间】:2010-10-22 05:27:42
【问题描述】:
以下是返回相同数据的两个查询。其他风格我不确定哪个更好。
哪些因素会影响这些查询? 使用一种风格比另一种风格有什么好处?
示例 1
var x = from s in db.Surveys
join sq in db.Survey_Questions on s.ID equals sq.Survey_ID
join q in db.Questions on sq.Question_ID equals q.ID
join qg in db.Question_Groups on q.ID equals qg.Question_ID
where s.Type_ID.Equals(typeID) & s.Type.Equals(type)
select new { question = sq.Question, status = sq.Status, grp = qg };
示例 2
var x = db.Surveys.Where(s => s.Type_ID.Equals(typeID) & s.Type.Equals(type))
.Join(db.Survey_Questions,
s => s.ID,
sq => sq.Survey_ID,
(s, sq) => new
{
question = sq.Question,
status = sq.Status
})
.Join(db.Question_Groups,
q => q.question.ID,
qg => qg.Question_ID,
(q, qg) => new
{
question = q.question,
status = q.status,
group = qg
}).ToList();
【问题讨论】:
-
值得一提的是您的样品并不相同...
-
最后的 .ToList() 强制执行完全不同。将其关闭以使它们等效。第一个 x 是 IQueryable
类型,第二个是 IList .
标签: c# linq query-expressions