У меня есть 2 модели:
User.cs:
- Имя
- Фамилия
- E-mail
- Пароль
Authentication.cs
Мне бы хотелось, чтобы адрес электронной почты и пароль из модели аутентификации отображались на адрес электронной почты и пароль в модели пользователя, поэтому в моем MappingProfile у меня есть:
public UserProfile()
{
CreateMap<User, Authentication>()
.ForMember(dest => dest.Email, o => o.MapFrom(src => src.Email))
.ForMember(dest => dest.Password, o => o.MapFrom(src => src.Password))
.IgnoreAllNonExisting();
}
IgnoreAllNonExisting является пользовательским расширением, например:
public static IMappingExpression<TSource, TDestination> IgnoreAllNonExisting<TSource, TDestination>
(this IMappingExpression<TSource, TDestination> expression)
{
var flags = BindingFlags.Public | BindingFlags.Instance;
var sourceType = typeof(TSource);
var destinationProperties = typeof(TDestination).GetProperties(flags);
foreach (var property in destinationProperties)
{
if (sourceType.GetProperty(property.Name, flags) == null)
{
expression.ForMember(property.Name, opt => opt.Ignore());
}
}
return expression;
}
Несмотря на расширение, я все еще получаю эту ошибку:
Несопоставленные свойства: Имя; Фамилия
Это почти как если бы мое расширение просто игнорировалось?
Кто-нибудь знает, что я делаю не так?