如何使用 Automapper 映射复杂对象?

2024-01-24

我有几门课:

public class Customer
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public Product Product { get; set; }
}

public class Product
{
    public string Name { get; set; }
}


public class Customer_
{
    public string FirstName { get; set; }

    public string LastName { get; set; }

    public Article Article { get; set; }
}

public class Article
{
    public string ArticleName { get; set; }
}

还有一个例子:

Customer[] Customer = new Customer[]
{
    new Customer()
    {
        FirstName = "FirstName1",
        LastName = "LastName1",
        Product =  new Product()
        {
            Name = "Product1"
        }
    },
    new Customer()
    {
        FirstName = "FirstName2",
        LastName = "LastName2",
        Product =  new Product()
        {
            Name = "Product2"
        }
    }
};

我想将此实例映射到Customer_对象在哪里Customer.Product.Name = Customer_.Article.ArticleName

我使用自动映射器:

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<Product, Article>()
    .ForMember(dest => dest.ArticleName, opt => opt.MapFrom(src => src.Name));

});

IMapper mapper = config.CreateMapper();
var desti = mapper.Map<Customer[], Customer_[]>(Customer);

但我有一个例外:

Missing type map configuration or unsupported mapping.

Mapping types:
Customer -> Customer_
Xml_Test.Customer -> Xml_Test.Customer_

Destination path:
Customer_[][0]

Source value:
Xml_Test.Customer

怎么了?


这应该可以解决问题 -

AutoMapper.Mapper.CreateMap<Product, Article>()
            .ForMember(a => a.ArticleName, b => b.ResolveUsing(c => c.Name));
AutoMapper.Mapper.CreateMap<Customer, Customer_>()
            .ForMember(a => a.Article, b => b.ResolveUsing(c => c.Product));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Automapper 映射复杂对象? 的相关文章

随机推荐

  • 在 Mac 上更新 Python

    我想在 mac 上将 python 2 6 1 更新到 3 x 但我想知道是否可以使用终端来完成此操作 或者我必须从 python 网站下载安装程序 我问这个问题是因为安装程序没有更新我的终端 python 版本 OS X 上的默认 Pyt
  • Hibernate 导致:org.hibernate.AnnotationException:未知的mappedBy

    我有两节课 Entity Table name profil public class Profil Id GeneratedValue strategy GenerationType AUTO Column name id private
  • 将 Tensorflow 中除 max 之外的所有值归零

    我有一个数组 0 3 0 5 0 79 0 2 0 11 我想将除最大值之外的所有值转换为零 所以结果数组将是 0 0 0 79 0 0 在 Tensorflow 图中执行此操作的最佳方法是什么 如果你想保留最大值的所有出现 你可以使用 c
  • 使用 Paramiko 进行递归目录下载?

    我想通过 SSH 递归下载一个包含未知内容的目录 并一直在尝试 Paramiko 我看过几个如何上传目录的示例 但没有一个示例涵盖递归下载 我可以列出目录中的所有项目 但无法找到一种方法来了解该项目是文件 要下载 还是目录 要递归调用 tr
  • 如何在 Mac OS X 10.5 中处理 Finder 中的多个文件拖放操作?

    我需要获取从 Finder 拖 放到我的应用程序中的所有文件的 URL 我有一个在 10 6 上运行的 Cocoa 应用程序 它通过使用新的 10 6 NSPasteboard API 来处理粘贴板上的多个项目 我正在尝试将此应用程序向后移
  • Windows Phone 7、登录屏幕重定向和 .exit 案例?

    我知道这个问题已经被讨论得令人作呕 但我想介绍一下我的情况 我的应用程序中的起始页是login xaml 用户登录 用户名和密码通过我的WCF服务进行身份验证 用户名保存在独立存储中 然后用户被重定向到mainpage xaml 当用户启动
  • NSTableColumn 大小适合内容

    我正在 Mac OS X 10 6 Snow Leopard 中进行开发 当我在 NSTableView 的两个列标题之间双击时 左侧的列会自动调整大小 就像您所期望的那样 我也想在上下文菜单中提供此功能 但似乎没有可公开访问的功能来执行此
  • 将具有 is-inactive 类的元素的光标设置为默认值

    客观的 一旦选择了每个类别的最大球员人数 两名守门员 六名后卫 十二名前锋 剩余的球员picked与班级is inactive应设置为cursor default 问题的澄清 所有球员都有班级is inactive作为默认值 我想做的是尝试
  • 从浏览器地址栏执行 Javascript 方法 - GWT

    我试图通过在浏览器 URL 地址栏上执行以下命令来在我的 Web 应用程序上执行 Javascript javascript window alert test void 0 但是 什么也没有发生 警报框也没有出现 原因可能是应用程序在 D
  • 在 Firestore (NodeJS) 上的文档中设置文档引用

    我正在尝试使用 NodeJS v8 6 0 创建一个包含 Firestore 参考的文档 像这样 const admin require firebase admin admin initializeApp credential MY CR
  • 2D 和 3D 数组的动态分配/释放

    我知道动态分配 取消分配 2D 数组的算法 但是我不太确定 3D 数组的算法 利用这些知识和一点对称性 我想出了以下代码 在编码过程中我很难以 3D 形式进行可视化 请评论正确性并建议任何更好的替代方案 效率或直观 如果有 另外 我认为这些
  • iOS的睡眠功能是什么

    我正在寻找一个函数 可以让 iOS 上的 C 代码甚至 Objective C 代码的线程进入休眠状态 我的编译器无法识别 sleep 0 Thanks 阻止 0 5 秒 NSThread sleepForTimeInterval 5
  • 从 R 中的大型 .CSV 导入和提取随机样本

    我正在 R 中进行一些分析 需要处理一些大型数据集 10 20GB 存储在 csv 中 并使用 read csv 函数 由于我还需要将大型 csv 文件与其他数据帧合并和转换 因此我没有计算能力或内存来导入整个文件 我想知道是否有人知道导入
  • 使用 C# 驱动程序将 UDT 元素添加到 Cassandra 中的列表集合的正确方法是什么?

    我有一个 UDT 列表 例如 create table MyTable stuff list
  • 将嵌入的 Pod 打印为带 termcap 转义的格式化文本

    我正在尝试将嵌入式 Pod 作为 ANSI 文本输出到终端 在 Perl 5 中我可以使用Pod Text Termcap https metacpan org pod Pod Text Termcap use strict use war
  • 如何中止来自 Observable 的 Ajax 请求?

    我的代码包含这个简单的函数 我用它来将文件上传到我的 PHP 服务器 有一个xhr请求嵌套在RxJS Observable fileUpload file File Observable
  • VB.NET 中从另一个线程挂起一个线程

    我有一个从线程 我们称之为 MainThread 运行的窗口 以及一个执行其他非图形任务的后台线程 有时后台线程会调用MessageBox Show 方法 即modal并停止后台线程 在此调用之前 我想挂起 MainThread 并在之后恢
  • Html 选取框标签

    html marquee 标签是否已弃用 如果是 现代浏览器上有哪些替代方案 我想在我的 joomla 页面上创建一个简单的字幕效果 html marquee 标签是否已弃用 不 它首先必须成为语言的一部分才能被弃用 它只是专有的 如果是
  • 生成 macOS 框架时如何保留公共标头的目录布局

    我有一个 C 库的 CMake 项目 当前版本为 CMake v3 21 我正在将其移植到 macOS 并且我正在考虑将该库生成为操作系统框架 https developer apple com library archive docume
  • 如何使用 Automapper 映射复杂对象?

    我有几门课 public class Customer public string FirstName get set public string LastName get set public Product Product get se