gpt4 book ai didi

automapper - 使用 AutoMapper 将平面结构映射到对象?

转载 作者:行者123 更新时间:2023-12-02 03:41:37 27 4
gpt4 key购买 nike

从存储过程返回的数据有 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

关于使它起作用的缺失步骤有什么想法吗?

最佳答案

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

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

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

关于automapper - 使用 AutoMapper 将平面结构映射到对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com