In einer Remote-Datenbank, die ich nur lesen kann, gibt es 24 Spalten in einer Zeile für jede Stunde des Tages. Ihre Namen gehen als P1, P2, ..., P24.Zuordnen von Elementen mit ähnlichen Namen Verwenden von Automapper
Ich muss die Werte in meine eigene db kopieren, die ich Spaltennamen als H1, H2, ..., H24 nannte.
Wie kann ich Auto Mapper verwenden, um Remote-Spalten zu Einheimischen zuordnen?
CreateMap<Data.Context.SomeTableFromRemoteDb, Data.Entity.MyTableInLocaldb>()
.ForMember(x => x.H1, y => y.MapFrom(z => z.P1))
.ForMember(x => x.H2, y => y.MapFrom(z => z.P2))
.ForMember(x => x.H3, y => y.MapFrom(z => z.P3))
.ForMember(x => x.H4, y => y.MapFrom(z => z.P4))
.ForMember(x => x.H5, y => y.MapFrom(z => z.P5))
.ForMember(x => x.H6, y => y.MapFrom(z => z.P6))
.ForMember(x => x.H7, y => y.MapFrom(z => z.P7))
.ForMember(x => x.H8, y => y.MapFrom(z => z.P8))
.ForMember(x => x.H9, y => y.MapFrom(z => z.P9))
.ForMember(x => x.H10, y => y.MapFrom(z => z.P10))
.ForMember(x => x.H11, y => y.MapFrom(z => z.P11))
.ForMember(x => x.H12, y => y.MapFrom(z => z.P12))
.ForMember(x => x.H13, y => y.MapFrom(z => z.P13))
.ForMember(x => x.H14, y => y.MapFrom(z => z.P14))
.ForMember(x => x.H15, y => y.MapFrom(z => z.P15))
.ForMember(x => x.H16, y => y.MapFrom(z => z.P16))
.ForMember(x => x.H17, y => y.MapFrom(z => z.P17))
.ForMember(x => x.H18, y => y.MapFrom(z => z.P18))
.ForMember(x => x.H19, y => y.MapFrom(z => z.P19))
.ForMember(x => x.H20, y => y.MapFrom(z => z.P20))
.ForMember(x => x.H21, y => y.MapFrom(z => z.P21))
.ForMember(x => x.H22, y => y.MapFrom(z => z.P22))
.ForMember(x => x.H23, y => y.MapFrom(z => z.P23))
.ForMember(x => x.H24, y => y.MapFrom(z => z.P24));
Dies ist der aktuelle Code. Was ich frage ist, können wir es so etwas wie dies zu konvertieren:
CreateMap<Data.Context.SomeTableFromRemoteDb, Data.Entity.MyTableInLocaldb>()
.ForMember(x => x.ReplaceMemberName(o=> o, "H", "P"), y => y.MapFrom(z => z.P1))
AutoMapper hat eine Funktion mit dem Namen replacemembername
aber es scheint nicht zu sein, was ich suche.
"ähnlich" zu subjektiv ist. Sie sehen ein wiederkehrendes Muster, aber ein Computer nicht. Aus seiner Sicht ändert sich die Hälfte der Daten im Namen zwischen P2 und H2. "Teppich" und "Puppe" sind auch auf halbem Wege ähnlich; aber da gibt es keine automatische Verbindung zwischen ihnen. Wenn die Namen nicht identisch sind, müssen Sie die Eigenschaften manuell zuordnen. – Flater
Haben Sie bisher einen Code? Wie erhalten Sie Daten aus der Datenbank und speichern sie? –
@Flatter, Sie sind völlig richtig. Ich mache es jetzt manuell. Aber bedenke, 1000 Eigenschaften zu haben. Es manuell zu tun wäre absurd. Automapper muss eine Funktion haben, um Muster zu vergleichen. Vielleicht tut es das, und darum bitte ich. – Doruk