我正在拔头发,试图在这里找出问题。我在整个项目中都使用过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();
答案 0 :(得分:0)
我今天遇到了同样的错误。最后我发现我的映射器初始化不正确。如果使用的是.Net Core,则需要创建一个继承自Automapper.Profile的配置文件类,并将所有映射器配置添加到其构造函数中。请参阅此帖子以获取更多详细信息:
https://medium.com/ps-its-huuti/how-to-get-started-with-automapper-and-asp-net-core-2-ecac60ef523f