Ich habe sql Tabelle tbl_persons mit Feldern: Vorname, Nachname, Vorname, Nachname.
Und ein Modell:
public class PersonName
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Person
{
public PersonName Name { get;set; }
public PersonName NameEng { get;set; }
}
Wie kann ich Zeilen von tbl_persons zu Person-Objekten zuordnen?
Sie können die Multi-Mapping-API von Dapper verwenden
Dies sollte gut funktionieren.
var result = new List<Person>();
var q = "SELECT null as S, first_name as FirstName,
last_name AS LastName,first_name_eng AS FirstName,
last_name_eng AS LastName FROM tbl_persons";
using (var con = new SqlConnection("YourConnStringHere")
{
result = con.Query<Person, PersonName,PersonName, Person>(q, (p,n,ne) =>
{ p.Name = n; p.NameEng =ne; return p; },
splitOn: "FirstName,FirstName").ToList();
}
Hinweis: Sie benötigen den null as S
als Dummy-Spalte, obwohl Sie ihn in Ihrer Klasse nicht verwenden. Wenn Sie dies nicht angeben, erhalten Sie einen Fehler in Ihrer aktuellen Klassenstruktur (keine nicht komplexen Eigenschaften).