Nachfolgend finden Sie zwei Abfragen, die die gleichen Daten liefern. Abgesehen vom Stil bin ich mir nicht sicher, welche besser ist.
Welche Faktoren beeinflussen diese Abfragen? Welche Vorteile hat die Verwendung des einen Stils gegenüber dem anderen?
Muster 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 };
Beispiel 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();
0 Stimmen
Es ist erwähnenswert, dass Ihre Proben nicht identisch sind ...
0 Stimmen
Auch das .ToList() am Ende erzwingt eine ganz andere Ausführung. Lassen Sie es weg, um sie gleichwertig zu machen. Das erste x ist vom Typ IQueryable<T> und das zweite ist IList<T>.