(copia su risposta di Andrew Davis, dal DocumentDB MSDN forums, per la comunità StackOverflow)
Il modo più semplice sarebbe quella di avere la classe Employee ereditare dal documento, e poi gettati result.Resource a dipendenti. Se non si desidera ereditare dal documento, è anche possibile definire un cast esplicito tra documento e impiegato.
Avere la classe Employee ereditata da Document dovrebbe funzionare immediatamente se i nomi dei membri della classe Employee corrispondono ai nomi delle proprietà corrispondenti della rappresentazione JSON.
Definizione del tipo di conversione consente un maggiore controllo, e potrebbe essere simile a questo:
public static explicit operator Employee(Document doc)
{
Employee emp = new Employee();
emp.Name = doc.GetPropertyValue<string>("employeeName");
emp.Number = doc.GetPropertyValue<int>("employeeNumber");
/* and so on, for all the properties of Employee */
return emp;
}
Questo sarebbe di definire un cast esplicito dal documento al dipendente. Dovrai assicurarti che le stringhe GetPropertyValue (e digiti gli argomenti) corrispondano alle tue proprietà JSON.
fonte
2014-11-25 23:36:18
Sì! Ha risposto alla mia domanda lì. Apprezzo che tu abbia risposto anche a questo forum. – Sam
Questo potrebbe funzionare quando si chiama CreateDocumentAsync poiché è già stata creata un'istanza Employee. Ma se vuoi anche essere in grado di chiamare ReadDocumentAsync per restituire 1 oggetto, non puoi trasmettere _that_ di nuovo a Employee. Per questo è necessario eseguire il cast dinamico come la risposta di Arnab o serializzare il documento Resource restituito. – Andy