找到了未映射的成员(即使忽略该属性)

时间:2018-07-25 17:03:04

标签: c# automapper

我正在拔头发,试图在这里找出问题。我在整个项目中都使用过AutoMapper,但从未遇到过这个特定问题。它抱怨有一个未映射的属性,但是我已经告诉它忽略该属性,并且仍然给出错误。

这是我从( UserDefinedFieldViewModel )映射的模型:

public class UserDefinedFieldViewModel
{
    public string Id { get; set; }
    public UsedFor UsedFor { get; set; }
    public UserDefinedFieldDataType DataType { get; set; }
    public DataTypeDisplay
    {
        get
        {
            switch (DataType)
            {
                case UserDefinedFieldDataType.ShortText:
                    return "Short Text";
                case UserDefinedFieldDataType.LongText:
                    return "Long Text";
                case UserDefinedFieldDataType.Date:
                    return "Date";
                case UserDefinedFieldDataType.Number:
                    return "Number";
                case UserDefinedFieldDataType.Boolean:
                    return "True/False";
                default:
                    return "Unknown";
            }
        }
    }
    public string FieldName { get; set; }
    public string HelpText { get; set; }
}

这是我要映射到的模型( UserDefinedField ):

public class UserDefinedField
{
    public string Id       { get; set; }
    public int OrgId       { get; set; }
    public UsedFor UsedFor { get; set; }
    public UserDefinedFieldDataType DataType { get; set; }
    public string FieldName     { get; set; }
    public string HelpText      { get; set; }
    public bool IsDeleted       { get; set; }
    public string CreateById    { get; set; }
    public DateTime CreateDate  { get; set; }
    public string LastModById   { get; set; }
    public DateTime LastModDate { get; set; }
}

我得到的确切错误是:

  

找到未映射的成员。在下面查看类型和成员。   添加自定义映射表达式,忽略,添加自定义解析器或修改源/目标类型

     

对于没有匹配的构造函数,请添加一个无参数ctor,添加可选参数,或映射所有构造函数参数

     

UserDefinedFieldViewModel-> UserDefinedField(目标成员列表)   Web.Areas.Admin.ViewModels.CustomFields.UserDefinedFieldViewModel-> Models.Core.UserDefinedField(目标成员列表)

     

未映射的属性:   OrgId

我只是不确定是什么引起了这里的问题。我在整个项目中都进行了这种类型的映射(包括仅将OrgId放在实际模型上)而没有此错误。

我尝试忽略OrgId来看看是否可行,但是似乎也没有效果。这是我的映射当前的样子:

x.CreateMap<UserDefinedFieldViewModel, UserDefinedField>().ForMember(dest => dest.OrgId, options => options.Ignore()).ReverseMap();

1 个答案:

答案 0 :(得分:0)

我今天遇到了同样的错误。最后我发现我的映射器初始化不正确。如果使用的是.Net Core,则需要创建一个继承自Automapper.Profile的配置文件类,并将所有映射器配置添加到其构造函数中。请参阅此帖子以获取更多详细信息:

https://medium.com/ps-its-huuti/how-to-get-started-with-automapper-and-asp-net-core-2-ecac60ef523f