Mit AutoMapper zum Anzeigen einer DataTable an ein Objekt (DTO)
Ich versuche ansehen, eine DataTable an ein Objekt (DTO) mit AutoMappers DynamicMap Funktion.
DataTable dt;
dt = new dalAllInvestors().InvestorNameSearch(investorNameSearch);
//Look at DynamicMap - Urgent
List<dtoAPISimpleInvestor> apiObject = AutoMapper.Mapper.DynamicMap<IDataReader, List<dtoAPISimpleInvestor>>(
dt.CreateDataReader());
return apiObject;
public class dtoAPISimpleInvestor
{
public int FirmID { get; set; }
public string FirmName { get; set; }
public string Type { get; set; }
public string Location { get; set; }
}
dt
gibt 10 Zeilen, aber wenn man sich die apiObject es gibt keine Zeilen zurück, und dies scheint nicht sinnvoll. Ich schaue mir dies für eine Weile jetzt, und nach googlen sieht es aus wie ich es richtig mache.
Den richtigen Spalten in der dt bei seiner Rückkehr die Karte, um die dtoAPISimpleInvestor
Kann jemand mir bitte helfen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie über etwas wie den folgenden...
AutoMapper Profil
HINWEIS : ich bin mit der
DataRow
geben Sie als Quelle und nichtIDataReader
(mehr dazu weiter unten).Mit dem Profil
Den
result
Objekt enthalten sollte, die richtige Anzahl vondtoAPISimpleInvestor
Objekte mit den richtigen Daten.HINWEIS : Der Aufruf
mapper.Map
nimmt ein Objekt des TypsList<DataRow>
erhältlich bei derDataTable
- Objekt mit der Anweisungnew List<DataRow>(dataTable.Rows.OfType<DataRow>());
(da dieRows
Eigenschaft desDataTable
- Objekt ist eine Sammlung, dieIEnumerable
aber nichtIEnumerable<T>
).Ist dies wahrscheinlich nicht das nur Lösung, aber ich habe überprüft, dass es funktioniert.
Als seitliche Anmerkung bemerkte ich, dass
DynamicMap
Methode, die Sie auf die verwiesen wurde, als veraltet markiert in der neuesten version der Bibliothek, so möchten Sie vielleicht zu vermeiden, es zu benutzen.System.Data.DataTableExtensions
für.AsEnumberable()
, QuelleDieser arbeitete für mich:
Version von automapper ist 3.1.1 herunterladen von nugget
Rufen Sie die Methode wie diese: