Invece di esporre il modello di database, sto cercando di far funzionare gli endpoint WebAPI con equivalenti DTO. Nel mio WebAPIConfig riferimento dal file Global.asax ho:Richiesta patch API Web OData con DTO
builder.EntitySet<ProductDTO>("Products");
builder.EntitySet<Product>("ProductsDB");
dove il prodotto ha un campo aggiuntivo che ProductDTO non ha.
La mia richiesta patch è attualmente:
[AcceptVerbs("PATCH", "MERGE")]
public IHttpActionResult Patch([FromODataUri] int key, Delta<ProductDTO> patch)
{
mi rendo conto che in sostanza ho bisogno di convertire il mio Delta<ProductDTO>
in un Delta<Product>
ma non riesco a vedere alcun metodi nella classe Delta che mi permettesse di impostare il suo EntityType sottostante esempio.
Qualcuno ha qualche consiglio?
grazie per la risposta. Riesco a vedere come funziona questo esempio ma sembra che qualunque sia la circostanza, 'Delta.GetChangedPropertyNames' restituisce tutte le proprietà nel mio DTO se sono state modificate o meno. Siete in grado di aiutare? È così che funziona per te? – user2363071
Non sono sicuro che il commento sopra ti abbia fatto riferimento correttamente o no, quindi proverò di nuovo qui ... – user2363071
Mi sono reso conto che Delta.GetChangedPropertyNames contiene tutte le proprietà per il mio DTO perché sto creando l'oggetto con il mio cliente senza estrarlo dal servizio e quindi tracciare il suo contesto. Grazie. – user2363071