Dường như hầu hết LINQ được viết bằng các biểu thức lambda. Làm thế nào để tôi đi về viết lại linq này bằng cách sử dụng lambda, kinda nhầm lẫn với phong cách (đặc biệt là với gia nhập)?Làm thế nào để viết lại LINQ này bằng cách sử dụng tham gia với các biểu thức lambda?
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 };
Bạn không thực sự cần phải viết lại nó. Thật là tốt khi nói thật. etimes tôi sử dụng một phong cách và đôi khi khác, và đây là một trường hợp mà tôi có thể đi cho cú pháp truy vấn. Từ [MSDN] (http://msdn.microsoft.com/en-us/library/bb397676.aspx): 'Là quy tắc khi bạn viết các truy vấn LINQ, chúng tôi khuyên bạn nên sử dụng cú pháp truy vấn bất cứ khi nào có thể và cú pháp phương thức bất cứ khi nào cần thiết .' –
Tôi thích biểu mẫu này cho JOIN. Với "Biểu thức Lambda", nó yêu cầu chỉ định 4 đối số (cộng với bộ thu), trong khi giống như ở trên, có vẻ lộn xộn hơn. –
Mặc dù cú pháp truy vấn dễ dàng hơn cho các phép nối, cú pháp lambda dễ debug hơn. Để biết chi tiết, hãy xem https://www.simple-talk.com/dotnet/.net-framework/linq-secrets-revealed-chaining-and-debugging/ – Roger