tôi đã chạy vào vấn đề này:Với LINQ to Entities không hỗ trợ "Phương thức tùy chỉnh", làm thế nào để bạn giữ DRY?
Custom Methods & Extension Methods cannot be translated into a store expression
Về cơ bản tôi có một số LINQ truy vấn phức tạp, vì vậy muốn phá vỡ chúng xuống truy vấn con được thực hiện như phương pháp mà trở IQueryables. Hy vọng của tôi là sau đó các IQueryables có thể được sáng tác với nhau trong một câu lệnh LINQ (như tôi khá chắc chắn bạn có thể làm trong LINQ to SQL).
Vấn đề là nếu bạn cố gắng này, bạn nhận được (ví dụ):
LINQ to Entities không nhận phương pháp 'System.Linq.IQueryable`1 [Chủ đề] GetThreadsByMostReccentlyPosted (Int32) Phương thức ' và phương pháp này không thể là được dịch sang biểu thức cửa hàng.
Có vẻ như khá cơ bản đối với tôi rằng nếu bạn sử dụng LINQ ORM thì bạn cần có khả năng soạn các truy vấn LINQ. Nếu không, bất kỳ logic truy vấn thông thường nào cũng phải được sao chép & được dán.
Với giới hạn này, làm thế nào tôi có thể ở lại DRY với LINQ to Entities?
vì vậy những gì bạn thực sự muốn biết là "Làm thế nào để thực hiện chậm trễ trong EF, như tôi có thể trong L2S?". –
cách duy nhất tôi có thể thấy để làm điều này cho đến nay là chuyển đổi IQueryable của tôi thành một IEnumerable, tại thời điểm đó tôi nghi ngờ bạn mất khả năng cho một câu lệnh SQL tối ưu được tạo ra – Schneider
Không - không liên quan gì đến việc thực thi bị trì hoãn. Về cơ bản nó sẽ không cho phép tôi viết các câu lệnh linq bao gồm các phương thức – Schneider