Es scheint, dass die meisten LINQ mit Lambda-Ausdrücken geschrieben wird. Wie gehe ich über das Umschreiben dieser Linq mit Lambda, ein bisschen Verwirrung mit dem Stil (vor allem mit Joins) gehen?Wie umschreiben Sie diese LINQ mit Join mit Lambda-Ausdrücke?
var responses =
from c in questionRepository.GetReponses()
join o in questionRepository.GetQuestions() on
c.QuestionID equals o.QuestionID
where c.UserID == 9999
orderby o.DisplayOrder
select new { o.QuestionText, c.AnswerValue };
Sie müssen nicht wirklich umschreiben es ist gut, wie es ist, um ehrlich zu sein Manchmal benutze ich einen Stil und manchmal den anderen, und das ist ein Fall, wo ich wahrscheinlich für die Abfragesyntax gehen würde. Von [MSDN] (http://msdn.microsoft.com/en-us/library/bb397676.aspx): 'In der Regel wird beim Schreiben von LINQ-Abfragen empfohlen, wann immer möglich die Abfragesyntax zu verwenden und bei Bedarf die Methodensyntax zu verwenden .' –
Ich mag dieses Formular für JOIN's. Bei "Lambda Expressions" müssen 4 Argumente angegeben werden (plus dem Empfänger), die, obwohl sie die gleichen wie oben sind, unübersichtlicher erscheinen. –
Obwohl die Abfragesyntax für Joins einfacher ist, ist die Lambda-Syntax leichter zu debuggen. Für Details siehe https://www.simple-talk.com/dotnet/.net-framework/linq-secrets-revealed-chaining-and-debugging/ – Roger