3

从存储过程返回的数据有 3 列重复数据:

Name | Address | PhoneNumber | UniqueCol1 | UniqueCol2

理想情况下,我希望我的模型通过仅存储一次值并收集唯一数据来显示重复数据。

public class MyViewModel
{
  public string Name {get;set;}
  public string Address {get;set;}
  public string PhoneNumber {get;set;}
  public List<MyModel> UniqueData {get;set;}

  public class MyModel
  {
    public string UniqueCol1 {get;set;}
    public string UniqueCol2 {get;set;}
  }
}

这意味着我想将结果集合映射到 MyViewModel 的单个对象:

return Mapper.Map<List<StoredProcedureObject>, MyViewModel>(result);

这是我得到错误的地方,因为我假设我有一些需要做的配置:

Mapping types:
List`1 -> MyViewModel

关于缺少步骤以使其正常工作的任何想法?

4

1 回答 1

1

Automapper只能将您的结构扁平化为更简单的东西。但是不可能将一个简单的类映射到更具体的东西。

我建议只取表中的第一个条目来填充基本字段,如Name, AddressPhoneNumber并遍历结果以填充UniqueData列表。
我没有看到更简单的方法,因为对于每个可能的映射并且不使用单独的循环,您将多次获得基本数据。

如果您不介意使用其他工具,也许您会看看ValueInjecter。我听说您可以使用此工具进行双向映射。

于 2013-10-29T12:43:31.863 回答