asp.net-core - Automapper 不工作 - 一直说已映射的属性的未映射属性
问题描述
我在 .Net Core 中使用 Automapper (automapper.extensions.microsoft.dependencyinjection) 从模型列表映射到 dto。我已经使用 ForMember 为属性创建了一个映射,但我不断收到一个错误,即该属性未映射。
services.AddAutoMapper(typeof(Startup).Assembly);
var userRolesDtos =
_mapper.Map<IEnumerable<UserRole>, IEnumerable<UserRoleDto>>(await _userRoleService.GetUserRolesAsync(urrp)); // method return <IEnumerable<UserRole>
public class UserRole
{
[Key]
[Required]
public Guid Id { get; set; }
[Required]
public string Name { get; set; }
public ICollection<UserRolePermission> UserRolePermissions { get; set; } = new List<UserRolePermission>();
public DateTime? DateCreated { get; set; }
public DateTime? DateModified { get; set; }
public DateTime? DateDeleted { get; set; }
}
public class UserRoleDto
{
public Guid Id { get; set; }
public string Name { get; set; }
public DateTime? DateCreated { get; set; }
public DateTime? DateModified { get; set; }
public DateTime? DateDeleted { get; set; }
public ICollection<UserPermissionDto> UserPermissions { get; set; } = new List<UserPermissionDto>();
}
public class UserRoleProfile : Profile
{
public UserRoleProfile()
{
CreateMap<UserRole, UserRoleForCreation>().ReverseMap();
CreateMap<UserRole, UserRoleForPartialUpdate>().ReverseMap();
CreateMap<UserRole, UserRoleDto>(MemberList.None)
.ForMember(
dest => dest.UserPermissions,
src => src.Ignore()
);
}
}
我希望该对象映射并忽略 UserPermissions 属性,但我收到此错误:
{AutoMapper.AutoMapperConfigurationException:找到未映射的成员。查看下面的类型和成员。添加自定义映射表达式、忽略、添加自定义解析器或修改源/目标类型
对于没有匹配的构造函数,添加一个无参数 ctor、添加可选参数或映射所有构造函数参数
AutoMapper 为您创建了此类型映射,但您的类型无法使用当前配置进行映射。UserRole -> UserRoleDto(目标成员列表) BIN.Core.Models.UserRoles.UserRole -> BIN.Core.Dtos.UserRoleDto(目标成员列表)
未映射的属性:UserPermissions
在 AutoMapper.ConfigurationValidator.AssertConfigurationIsValid(IEnumerable 1 typeMaps) in C:\projects\automapper\src\AutoMapper\ConfigurationValidator.cs:line 48
at lambda_method(Closure , IEnumerable
1,IEnumerable`1,ResolutionContext)}
解决方案
推荐阅读
- c# - 在c#中的嵌套JSON对象内反序列化嵌套JSON数组?
- vue.js - VueJS 使用路由查询渲染动态组件
- c - 由于未知的参考错误,程序无法运行
- gltf - 法线贴图未使用 Khronos GLTF 导入器统一导入
- javascript - HTML/JS:日期时间显示器
- octave - 如何在八度音阶中矢量化嵌套循环?
- sass - Jekyll 不编译 scss
- types - 在 Rust 程序和嵌入式 WebAssembly 运行时之间进行通信的最佳实践是什么?
- string - Oracle SQL - 在字符串的各个点提取文本
- keras - 以非交互方式运行 Jupyter Notebook