2014-04-25 33 views
5

Thay vì hiển thị Mô hình cơ sở dữ liệu của tôi, tôi đang cố gắng để có được các điểm cuối WebAPI của tôi làm việc với các tương đương DTO. Trong WebAPIConfig của tôi được tham chiếu từ tệp Global.asax tôi có:Yêu cầu bản vá API OData Web API với DTO

builder.EntitySet<ProductDTO>("Products"); 
builder.EntitySet<Product>("ProductsDB"); 

Trường hợp sản phẩm có thêm một trường mà ProductDTO không có.

yêu cầu vá của tôi hiện là:

[AcceptVerbs("PATCH", "MERGE")] 
public IHttpActionResult Patch([FromODataUri] int key, Delta<ProductDTO> patch) 
{ 

Tôi có thể thấy rằng về cơ bản tôi cần phải chuyển đổi của tôi Delta<ProductDTO> thành một Delta<Product> nhưng tôi không thể nhìn thấy bất kỳ phương thức trong lớp Delta mà sẽ cho phép tôi để thiết lập EntityType cơ bản của nó ví dụ.

Có ai có lời khuyên nào không?

Trả lời

0

Câu hỏi này là rất tương tự như của bạn, xin vui lòng tham khảo nó:

Microsoft Odata api through a ViewModel has problems in PATCH

+0

cảm ơn bạn đã trả lời của bạn. Tôi có thể xem ví dụ này hoạt động như thế nào nhưng dường như bất kể hoàn cảnh nào, 'Delta.GetChangedPropertyNames' trả về tất cả các thuộc tính trong DTO của tôi cho dù chúng đã thay đổi hay chưa. Bạn có thể giúp đỡ? Đây có phải là cách nó hoạt động cho bạn? – user2363071

+0

Tôi không chắc liệu lời bình luận ở trên có tham chiếu chính xác hay không vì vậy tôi sẽ thử lại ở đây ... – user2363071

+0

Tôi đã nhận ra rằng Delta.GetChangedPropertyNames chứa tất cả các tính năng thích hợp cho DTO của tôi vì tôi đang tạo đối tượng khách hàng của tôi mà không cần giải nén nó khỏi dịch vụ và do đó theo dõi ngữ cảnh của nó. Cảm ơn. – user2363071