Tôi đã có một dự án ASP.NET WebAPI. Tôi vừa mới tạo các thực thể EntityFramework cho tất cả các bảng dữ liệu của mình. Nhưng tôi không muốn hiển thị lược đồ lớp dữ liệu & cho người dùng của mình. Làm thế nào tôi có thể ánh xạ các thực thể của mình tới một ViewModel (Automapper?) và cung cấp kiểu trả về IQueryable để API của tôi hỗ trợ OData?Sử dụng EF và WebAPI, làm cách nào tôi có thể trả về ViewModel AND support IQueryable/OData?
OData hỗ trợ thành phần truy vấn và tham số giống SQL. Tôi đoán tôi cần cung cấp một số loại bản dịch 2 chiều cho phần thành phần truy vấn? Điều đó có nghĩa là một nhà cung cấp LINQ tùy chỉnh? Tôi hy vọng nó dễ hơn thế.
Hoặc tôi có nên từ bỏ IQueryable/OData không?
là điều này vẫn còn khả thi trong Web Api 2? –
Tuyệt đối! tất nhiên là thế rồi. Bây giờ chỉ có nhiều lựa chọn hơn. –
Tôi không nghĩ phương pháp này hoạt động nữa. Phương thức này không được gọi trừ khi tham số được thay đổi thành ODataQueryOptions. Nếu bạn thay đổi tham số đó, thì phương thức này sẽ được gọi, nhưng odataQuery.ApplyTo() ném một ngoại lệ, nói rằng truy vấn đó áp dụng cho kiểu PersonDto, không phải là Person. –
sheamus