私が読むことができるリモートデータベースでは、1時間ごとに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の間で変化します。 「カーペット」と「人形」も半分似ています。そのためにそれらの間に自動接続はありません。名前が同一でない限り、プロパティを手動でマップする必要があります。 – Flater
これまでのコードはありますか?どのようにしてDBからデータを取得して保存しますか? –
@Flatter、あなたは完全に正しいです。私は今それを手動でやっています。しかし1000のプロパティを持っていると考えてください。それを手動で行うのはばかげているでしょう。 Automapperには、パターンにマッチする機能が必要です。多分それはそうし、これが私が求めているものです。 – Doruk