代码之家  ›  专栏  ›  技术社区  ›  Dev 404

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

  •  2
  • Dev 404  · 技术社区  · 6 年前

    我正在努力解决这个问题。我用过 AutoMapper

    用户定义的FieldViewModel ):

    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; }
    }
    

    这是我要映射到的模型( 用户定义字段 ):

    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; }
    }
    

    我得到的确切错误是:

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

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

    未映射的属性:

    我不知道是什么引起了这个问题。我在整个项目中都做过这种类型的映射(包括 OrgId

    我试着忽略 看看这是否有效,但似乎也没有效果。以下是我当前的映射:

    x.CreateMap<UserDefinedFieldViewModel, UserDefinedField>().ForMember(dest => dest.OrgId, options => options.Ignore()).ReverseMap();
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Sachin Parashar    5 年前

    我今天也犯了同样的错误。最后我发现我的映射器初始化不正确。如果使用的是.Net核心,则需要创建一个从自动制造商配置文件并在其构造函数中添加所有映射器配置。更多详情请参考本帖:

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