Wir haben eine spezifische Struktur namens Measure, und wir möchten diesen Typ anstelle des Datenbankfeldtyps z. doppelt.Verwenden Sie die Projektion, um nicht zugeordnete Typen in EF zu füllen
So haben wir eine Einheit:
public class MyEnity
{
public int MyValue { get; set; }
}
Und wir haben ein Transferobjekt: public class MyDto { öffentliche Maßnahme MyMeasureValue {get; einstellen; } }
Wenn der Objekttyp, würde passen wir unsere DTO pro Projektion können füllen:
enities.Select(i => new MyDto { MyMeasureValue = new Measure(i.MyValue, _unitsService.GetUnit("km")) });
Aber da EF wir diese haben zum Nachfüllen nicht, solche Aussagen unterstützen, oder die gesamte Einheit laden :
entities.Select(i => new { MyValue = i.MyValue })
.AsEnumerable()
.Select(i => new MyDto { MyMeasureValue = new Measure(i.MyValue, _unitsService.GetUnit("km")) });
wir diese Schleife mehrmals in dem Nachfüllvorgang vermeiden wollen, vor allem, weil es eine Menge von Eigenschaften zu füllen ist. Gibt es eine Möglichkeit, mit der ersten Aussage zu beginnen und EF beizubringen, die Measure-Erstellung auszuführen? (z.B. Abhören usw.)
PS. Es ist keine Option, einen komplexen EF-Typ zu erstellen und zu mappen!
Dank Enyra
Complexe-Typen sind keine Option, weil unser Typ eine Struktur ist und sein muss. Automapper könnte eine Lösung sein, das muss ich klären. – Enyra