在我只能讀取的遠程數據庫中,每天的每個小時都有24列連續。他們的名字是P1,P2,...,P24。具有相似名稱的映射成員使用自動映射器
我必須將這些值複製到我自己的數據庫中,我將其命名爲H1,H2,...,H24。
如何使用自動映射器將遠程列映射到本地?
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));
這是當前的代碼。我想問的是我們可以將它轉換爲是這樣的:
CreateMap<Data.Context.SomeTableFromRemoteDb, Data.Entity.MyTableInLocaldb>()
.ForMember(x => x.ReplaceMemberName(o=> o, "H", "P"), y => y.MapFrom(z => z.P1))
Automapper有名字replacemembername
功能,但它似乎沒有什麼我正在尋找。
「類似的」 太主觀。你會看到一個反覆出現的模式,但是一臺計算機沒有。從它的角度來看,名稱中的一半數據在P2和H2之間變化。 「地毯」和「傀儡」也是相似的;但是他們之間沒有自動連接。除非名稱是_identical_,否則您需要手動映射屬性。 – Flater
到目前爲止你有任何代碼嗎?你如何從數據庫中獲取數據並保存它? –
@Flatter,你完全正確。我現在正在手動做。但考慮擁有1000個屬性。手動操作將是荒謬的。 Automapper必須有一些功能來匹配模式。也許它確實如此,這就是我所要求的。 – Doruk