2016-05-19 11 views
1

Automapperを使ってクラスAからクラスBにマッピングしようとしていますが、プレフィックスフィールドが宛先で使用可能な場合にのみマッピングするマップを作成します。これはどうすればいいですか?Automapperを使用して接頭辞付きのプロパティのみにマップする方法は?

たとえば、これは動作しません。結果は
lclTS.id = 20
lclTD.id = 20 < < < < < < <間違っていることでしょう

class TestSource 
{ 
    public long id { get; set; } 
} 

class TestDest 
{ 
    public long TD_id { get; set; } 
    public long id { get; set; } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    TestSource lclTS = new TestSource() { id = 20 }; 

    TestDest lclTD = new TestDest() { id = 30 }; 

    var lclConfig = new MapperConfiguration 
    (
     cfg => 
     { 
      cfg.ClearPrefixes(); 
      cfg.RecognizeDestinationPrefixes("TD_"); 
      cfg.CreateMap<TestSource, TestDest>(); 
     } 
    ); 

    IMapper lclMapper = lclConfig.CreateMapper(); 

    lclMapper.Map(lclTS, lclTD); 
} 

、私は」didnのtが、これは滞在する必要があり、接頭辞はありません、これをマップ30
lclTD.TD_id = 20

答えて

0

自動マッパーは、明示的にマップされていない場合は、同じ名前とタイプのフィールドをマップします。

フィールド間の明示的なマッピングを作成するForMemberメソッドを試してください。

関連する問題