C# Automapper非常简单的嵌套映射不';行不通

C# Automapper非常简单的嵌套映射不';行不通,c#,automapper,C#,Automapper,我试图理解为什么此配置没有映射公司属性。它是否应该按所描述的那样工作 public类CreateAccountViewModel { 公共字符串名称{get;set;} 公共字符串编号{get;set;} 公共字符串首字母缩略词{get;set;} } 公共类帐户 { 公共字符串名称{get;set;} 公共字符串编号{get;set;} 上市公司{get;set;} } 公营公司 { 公共字符串首字母缩略词{get;set;} } 公共类单元测试 { [事实] 公共图书馆 { var conf

我试图理解为什么此配置没有映射
公司
属性。它是否应该按所描述的那样工作

public类CreateAccountViewModel
{
公共字符串名称{get;set;}
公共字符串编号{get;set;}
公共字符串首字母缩略词{get;set;}
}
公共类帐户
{
公共字符串名称{get;set;}
公共字符串编号{get;set;}
上市公司{get;set;}
}
公营公司
{
公共字符串首字母缩略词{get;set;}
}
公共类单元测试
{
[事实]
公共图书馆
{
var config=new-MapperConfiguration(cfg=>
{
CreateMap();
CreateMap();
});
config.assertconfigurationsvalid();
}
}
测试结果:

  Message: 
    AutoMapper.AutoMapperConfigurationException : 
    Unmapped members were found. Review the types and members below.
    Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
    For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
    =====================================================================
    CreateAccountViewModel -> Account (Destination member list)
    Kairos.UnitTests.CreateAccountViewModel -> Kairos.UnitTests.Account (Destination member list)

    Unmapped properties:
    Company

你的案例和例子不一样。在您的情况下,需要添加自定义映射,以便将首字母缩写词属性映射到公司实例


示例中的
AutoMapper
知道如何将
CreateAccountViewModel
映射到
Account
CreateAccountViewModel
映射到
公司
,但不知道如何将字符串属性
首字母缩写词
映射到
公司

AutoMapper无法推断出
首字母缩写词
应为从
公司
属性引用的对象上的属性映射。通过将目标属性重命名为
CompanyAcronym
,AutoMapper应该能够将两者链接在一起,如前所述

在文档中,目标和源完全匹配,但在您的示例中,您使用的是
字符串首字母缩略词
,而不是
公司
。我想这就是问题所在。或者,不用重命名。