Я разработал лазурную функцию в .net core
и настроил automapper
в startup.cs
builder.Services.AddAutoMapper(Assembly.GetAssembly(this.GetType()));
Я пытаюсь создать карту между классом домена (таблица в ядре EF) и DTO. Класс предметной области имеет свойство RowVersion. Я хочу, чтобы это свойство игнорировалось при сопоставлении dto с доменом.
Для этого я создал класс профиля и создал свою пользовательскую карту, но это не работает.
Я попробовал DoNotValidate , но, похоже, он не работает.
Startup.cs
builder.Services.AddAutoMapper(Assembly.GetAssembly(this.GetType()));
public class MapperProfile :Profile
{
public MapperProfile()
{
CreateMap<MyDto, MyDomain>().ForMember(i => i.RowVersion, opt => opt.Ignore());
}
}
Сервис.cs
_mapper.Map<myDomain>(myDtoInstance)
получение ошибки ниже
Unmapped members were found. Review the types and members below.
Add a custom mapping expression, ignore, add a custom resolver, or modify the source/destination type
For no matching constructor, add a no-arg ctor, add optional arguments, or map all of the constructor parameters
Unmapped properties:
[5/28/2019 7:00:40 AM] RowVersion
ForMember
используется для ссылки на объекты назначения, в вашем случае MyDto
.
Вместо этого используйте ForSourceMember
:
public MapperProfile()
{
CreateMap<MyDto, MyDomain>().ForSourceMember(i => i.RowVersion, opt => opt.Ignore());
}