Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将同名字段映射到automapper中的不同文件_C#_.net_Asp.net Core_.net Core_Automapper - Fatal编程技术网

C# 将同名字段映射到automapper中的不同文件

C# 将同名字段映射到automapper中的不同文件,c#,.net,asp.net-core,.net-core,automapper,C#,.net,Asp.net Core,.net Core,Automapper,我有一个模型,我正试图从.NETCore2.0中的Match类映射它。 这两个类都有Name属性 我需要映射Match.Value=>ViewCompany.Name 但它总是将Match.Name放入ViewCompany.Name中 这是我的自动映射配置文件: CreateMap<Match, ViewCompany>() .ForMember(dest => dest.Name, opt => opt.MapFrom(src =>

我有一个模型,我正试图从.NETCore2.0中的Match类映射它。 这两个类都有Name属性

我需要映射Match.Value=>ViewCompany.Name

但它总是将Match.Name放入ViewCompany.Name中

这是我的自动映射配置文件

CreateMap<Match, ViewCompany>()
                .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Value));
public class ViewCompany
{
    public ViewCompany()
    {

    }

    public ViewCompany(string name)
    {
        this.Name = name;
    }

    public int Id { get; set; }

    public string Name { get; set; }
}
上面的映射不起作用

但是,如果我将模型中的属性名称更改为“Value”或“tempName”之类的其他名称,并更新automapper配置文件,它就可以正常工作


那么,在Automapper中,是否不可能将具有相同名称的属性映射到不同的属性?

这里发生的是,
Name
是通过映射的。避免这种情况的一个简单方法是告诉AM使用什么构造函数:

 CreateMap<Match, ViewCompany>().ConstructUsing(source=>new ViewCompany());
CreateMap().ConstructUsing(source=>newviewcompany());

对我有效,请尝试升级。@LucianBargaoanu我有最新的6.0.0版本的Automapper.Extensions.Microsoft.DependencyInjection,很可能您的配置由于设置不正确而被忽略。检查。@LucianBargaoanu配置似乎很好,因为我将属性“Name”更改为“CompanyName”并更新了配置。FormMember(dest=>dest.CompanyName,opt=>opt.MapFrom(src=>src.Value))成功了。你完全正确。我只是在一个没有构造函数的新虚拟项目中尝试了同样的方法,它成功了。实际上,我不再需要那个构造函数了。所以,我删除了它,现在它的工作预期。非常感谢@luciante,lambda表达式中的参数应该是
dest
,以避免产生混淆:
ConstructUsing(dest=>newviewcompany())实际否:)您收到源代码并返回目标。