2014-04-25 10 views
5

Anstatt mein Datenbankmodell verfügbar zu machen, versuche ich, meine WebAPI-Endpunkte mit DTO-Entsprechungen zu arbeiten. In meinem WebAPIConfig aus der Global.asax-Datei referenziert ich habe:OData Web API Patch Anforderung mit DTO

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

Wo Produkt ein zusätzliches Feld hat die ProductDTO nicht verfügt.

Mein Patch-Anforderung ist derzeit:

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

Das sehe ich im Wesentlichen muss ich meine konvertieren Delta<ProductDTO> in ein Delta<Product> aber ich kann keine Methoden in der Delta-Klasse, die mir erlauben würde, die ihr zugrunde liegenden EntityType einstellen Beispiel.

Hat jemand einen Rat?

Antwort

0

Diese Frage ist sehr ähnlich wie bei Ihnen, bitte verweisen:

Microsoft Odata api through a ViewModel has problems in PATCH

+0

Dank für Ihre Antwort danken. Ich kann sehen, wie dieses Beispiel funktioniert, aber es scheint, dass "Delta.GetChangedPropertyNames" unabhängig von den Umständen alle Eigenschaften in meinem DTO zurückgibt, egal ob sie sich geändert haben oder nicht. Können Sie helfen? Funktioniert das so für dich? – user2363071

+0

Ich bin nicht sicher, ob der obige Kommentar Sie korrekt referenziert oder nicht, also werde ich es hier erneut versuchen ... – user2363071

+0

Ich habe festgestellt, dass Delta.GetChangedPropertyNames alle Eigenschaften für mein DTO enthält, weil ich das Objekt mit erstelle mein Kunde, ohne ihn aus dem Dienst zu extrahieren und somit seinen Kontext zu verfolgen. Vielen Dank. – user2363071

Verwandte Themen