Wie AutoMapper verwenden, um anzeigen einer DataRow auf ein Objekt in einem WCF-Dienst?

Ich habe einen WCF service, der eine gespeicherte Prozedur aufruft und gibt eine DataTable. Ich möchte zum transformieren der von DataRows, um benutzerdefinierte Objekt, bevor Sie an den Verbraucher, aber kann nicht herausfinden, wie dies zu tun. Können sagen, ich abgerufen, ein Kunde aus einer gespeicherten Prozedur. Um die Dinge kurz hier ist der Kunde über DataRow:

string lastName = dt.Rows[0]["LastName"].ToString();
string firstName = dt.Rows[0]["FirstName"].ToString();
string age = System.Convert.ToInt32(dt.Rows[0]["Age"].ToString());

Kann ich abrufen der Kunde leicht. Nun, ich habe ein Customer-Objekt etwa so:

public Customer
{
     public string LastName {get;set;}
     public string FirstName {get;set;}
     public int Age {get;set;}
}

Ich geladen AutoMapper von der Paket-manager-Konsole. Ich lege dann eine öffentliche statische Methode, die auf meine Kunden so:

public static Customer Get(DataRow dr)
{
     Mapper.CreateMap<DataRow, Customer>();
     return Mapper.Map<DataRow, Customer>(dr);
}

Wenn ich durch meinen code, der jede Eigenschaft in die Kunden zurückgegeben, die von Get() ist null. Was vermisse ich hier? Muss ich hinzufügen, um eine benutzerdefinierte Erweiterung, aus der die Zuordnung einer DataRow? Hier ist ein thread, scheint im Zusammenhang, aber ich dachte, AutoMapper unterstützen würde, dieser aus der box vor allem, da die property-Namen sind identisch mit den Namen der Spalten. Vielen Dank im Voraus.

InformationsquelleAutor BBauer42 | 2013-04-25
Schreibe einen Kommentar