2014-11-06 20 views
13

Tôi đang sử dụng codefirst với odata. Tôi đã thiết lập các mô hình của mình và với các mối quan hệ. Truy vấn dường như đang hoạt động thành công. Tôi chỉ chạy trong một vấn đề khi sử dụng $ mở rộng khi mở rộng dữ liệu lồng nhau. Tôi theo dõi link sau trang web của Microsoft. Vì vậy, tôi có thể làm như sau thành công

http://myurl.com/odata/catagories?$expand=Product 

Bây giờ Nếu tôi quyết định đi một mức độ sâu hơn usinng các truy vấn sau đây

http://myurl.com/odata/catagories?$expand=Product/Supplier 

tôi nhận được lỗi sau

Truy vấn theo quy định tại các URI không hợp lệ. Đã tìm thấy một đường dẫn đi qua nhiều thuộc tính điều hướng. Vui lòng lặp lại truy vấn sao cho mỗi đường dẫn mở rộng chỉ chứa các phân đoạn loại và thuộc tính điều hướng.

Nếu bạn truy cập liên kết ở trên, người nào đó trong nhận xét có vẻ gặp vấn đề tương tự. Tôi có thể thề rằng tôi đã làm việc này với phiên bản trước của odata và Web Api.

Trả lời

23

Tôi đã tìm thấy câu trả lời sau khi tìm thấy số question này. @Rama cung cấp câu trả lời. Tôi đề nghị Microsoft cập nhật tài liệu của họ trên liên kết được liệt kê ở trên. Vì vậy, thay vì

http://myurl.com/odata/catagories?$expand=Product/Supplier 

Bạn thà sử dụng

http://myurl.com/odata/catagories?$expand=Product($expand=Supplier) 
+1

Cú pháp chính thức là cho OData V3, nhưng sau đó là dành cho V4 – Karata

+2

các ký hiệu dấu gạch chéo là v4 OData: http: //docs.oasis-open .org/odata/odata/v4.0/errata01/os/complete/part2-url-quy ước/odata-v4.0-errata01-os-part2-url-conventions-complete.html # _Toc395267179 – Jerther

+1

Đặc biệt xấu, bởi vì Microsoft tuyên bố nó đang triển khai OData v4 và thư viện máy khách OData4 sẽ thực hiện yêu cầu bằng phương thức Slash. Thay vì cập nhật tài liệu, Microsoft nên cập nhật triển khai Nested Expand của họ. –

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