2009-12-09 29 views
8

Tôi đang tìm danh sách như vậy cho LINQ to SQL. Lý tưởng nhất, tôi muốn có một danh sách các phương thức được hỗ trợ khác (hoặc các thành viên - ví dụ: các nhà thầu), ví dụ: cho loại DateTime.LINQ to SQL: có danh sách đầy đủ các phương pháp mở rộng IQueryable được hỗ trợ không?

+1

Những người bỏ phiếu để đóng như một bản sao chính xác của http://stackoverflow.com/questions/1875156/ là ** sai. ** Các quy tắc cho L2S và L2E là khác nhau, như là tài liệu. –

Trả lời

2

Yes, mặc dù ít hoàn thiện hơn cho L2E. Xem thêm Data Types and Functions. Điều này bao gồm DateTimeDateTimeOffset.

+0

Tôi chấp nhận trả lời, vì có vẻ như đây là thông tin toàn diện nhất có thể được tìm thấy. Không có danh sách các phương thức IQuery được hỗ trợ \ không được hỗ trợ - chỉ có một số ví dụ về các phương thức không được hỗ trợ: http://msdn.microsoft.com/en-us/library/bb882656.aspx –

0

http://msdn.microsoft.com/en-us/library/bb337580.aspx. Tất cả các phương thức mở rộng này được ghi thành các thành viên của IQueryable.

Lưu ý rằng IQueryable triển khai IEnumerable, vì vậy mọi thứ mà IEnumerable thực hiện cũng có sẵn trên IQueryable, với lời nhắc rằng một số phương pháp đó không hoạt động! Đặc biệt, bất kỳ thứ gì sử dụng một trình so sánh tùy chỉnh sẽ biên dịch chính xác, nhưng sẽ gặp lỗi thời gian chạy từ LINQ to SQL. Cũng đúng đối với .Take() và .Skip() với các giá trị không phải là số.

+0

Tôi hoàn toàn nhận thức về IQueryable và IEnumerable (Tôi là một trong những nhà phát triển của công cụ ORM hỗ trợ LINQ). Câu trả lời của bạn không hữu ích vì chỉ có một tập hợp con các phương thức IQueryable được hỗ trợ bởi * any * LINQ provider. Câu hỏi chính nó cho biết tôi biết một danh sách đầy đủ các phương pháp này ... –

+0

Sau đó, câu hỏi của bạn chắc chắn không rõ ràng. Tại sao DateTime lại được xử lý khác với bất kỳ loại giá trị nào khác? Những gì các nhà xây dựng (thuộc bất kỳ loại nào) sẽ được hỗ trợ bởi IQueryable, đó là một giao diện? Những phương thức nào khác mà tôi sẽ hỗ trợ, ngoài những phương thức được xác định trên nó hoặc trên các giao diện mà nó thừa hưởng từ? –

+0

Vâng, có thể là câu hỏi thực sự không rõ ràng, đặc biệt là nếu bạn không cống hiến mình cho bản dịch LINQ quá nhiều. Các nhà xây dựng được hỗ trợ và các thành viên của các loại khác rất thú vị bởi vì nhà cung cấp IQueryable có thể hỗ trợ một trong số đó hay không. "Hỗ trợ" có nghĩa là nó có thể dịch một biểu thức với thành viên này thành tương đương SQL của nó. Rõ ràng, không phải bất cứ điều gì có thể được dịch bằng cách này, do đó một tập hợp các loại BCL \ thành viên được hỗ trợ bởi một nhà cung cấp cụ thể là thú vị là tốt. –

Các vấn đề liên quan