1

好像看不懂怎么做下面的映射,Domain EF有两种模式:

public class A
{
     public int Id {get; set;}
     public string Name {get; set;}
}

public class B
{
     public int Id {get; set;}
     public string EmplName
     public int AId {get; set;}
     public virtual A A { get; set; }
}

现在有一个 ViewModel,我想在表单上显示给用户:

public class B_ViewModel
{
     public int Id {get; set;}
     public string EmplName {get; set;}
     public string NameA {get; set;}
}

尝试使用 Emit Mapper,但我不明白如何实现映射字段 NameA,因为它实际上位于另一个表中:

var mapper = ObjectMapperManager.DefaultInstance.GetMapper<B, B_ViewModel>();

我会很感激你的帮助。

4

1 回答 1

1

你只需要两个映射器:

var mapper1 = ObjectMapperManager.DefaultInstance.GetMapper<A, B_ViewModel>();
var mapper2 = ObjectMapperManager.DefaultInstance.GetMapper<B, B_ViewModel>();

var result = new B_ViewModel();
mapper1.Map(a, result); 
mapper2.Map(b, result); 
于 2014-03-19T13:11:22.423 回答