2013-05-01 33 views
5

Tôi đang nghĩ đến việc sử dụng OData cho dịch vụ web của mình (dựa trên API Web). Thật không may, nguồn dữ liệu của tôi là KHÔNG IQueryable. Thay vì thực hiện IQueryable của riêng tôi, tôi đã theo dõi rất nhiều this blog post.OData mà không IQueryable

Điều tôi không hiểu là làm cách nào để truy cập vào mô hình dữ liệu thực thể của mình (EDM)? Tôi có phải mô hình hóa EDM chẳng hạn trong Nhà thiết kế không? Hoặc là điều này cho EF chỉ và tôi có thể sử dụng „đồng bằng" các lớp học thay vào đó và thiết lập quan hệ-thuộc tính? Tôi không muốn để lộ cấu trúc dữ liệu nội bộ của tôi do đó EDM của tôi giống DTO hơn ...

Trong một example Tôi đã thấy rằng tôi phải lấy được từ EntitySetController để nhận HTTP tuân thủ OData phản ứng. Tôi tin rằng tôi không thể sử dụng EntitySetController vì tôi không hỗ trợ IQueryable. Tôi phải làm gì để có được một phản ứng thích hợp?

Trả lời

4

Bạn có thể tự xây dựng mô hình EDM. Bạn có thể sử dụng lớp học ODataConventionModelBuilder để xây dựng mô hình EDM của mình. tutorial có một số mã mẫu. Ngoài ra, hãy kiểm tra các mẫu trên OData từ here, đặc biệt là ODataServiceSample và ODataCompositeKeySample. Họ sẽ giúp bạn bắt đầu.

Ngoài ra, nếu bạn không có IQueryable, bạn có thể lấy được từ ODataController thay vì EntitySetController.

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