powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как вызвать ошибку при несовпадении сопоставляемых свойств при AutoMapper?
2 сообщений из 2, страница 1 из 1
Как вызвать ошибку при несовпадении сопоставляемых свойств при AutoMapper?
    #39544285
Solomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как сделать, чтобы при сопоставлении свойств при AutoMapper возникала ошибка при несовпадении типов?


Есть два класса:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public class ClassOne
    {
        public int id { get; set; }
        public string Name { get; set; }
        public double Price { get; set; }
    }
    public class ClassTwo
    {
        public int id { get; set; }
        public string Name { get; set; }
        public int Price { get; set; }
    }



Пытаюсь сопоставить значения переменных "source" и "destination":
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
var config = new MapperConfiguration(cfg => {
                cfg.CreateMap<ClassOne, ClassTwo>();
});

IMapper iMapper = config.CreateMapper();
var source = new ClassOne() {id = 1, Name = "Joydip", Price = 1000.87872};
var destination = new ClassTwo() {id = 7, Name = "lalafa", Price = 9876};
destination = iMapper.Map<ClassOne, ClassTwo>(source);



И вот не задача:
у Переменной destination свойство Price = 1001.
И это боюсь это потом может боком выйти, потому что рано или поздно всё равно произойдёт ошибка вычисления.
Как сделать так чтобы, если типы для одноимённый свойств не совпадали, то возникала бы ошибка?
...
Рейтинг: 0 / 0
Как вызвать ошибку при несовпадении сопоставляемых свойств при AutoMapper?
    #39544597
погроммист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Solomka,

навеяно https://stackoverflow.com/a/38080647

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Mapper.Initialize(cfg =>
{
    // register your maps here
    cfg.CreateMap<A, B>();

    cfg.ForAllMaps((typeMap, mappingExpr) =>
    {
        var ignoredPropMaps = typeMap.GetPropertyMaps();

        foreach (var map in ignoredPropMaps)
        {
            var sourcePropInfo = map.SourceMember as PropertyInfo;
            if (sourcePropInfo == null) continue;

            if (sourcePropInfo.PropertyType != map.DestinationPropertyType)
                throw new ApplicationExceprion("Message");
        }
    });
});
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как вызвать ошибку при несовпадении сопоставляемых свойств при AutoMapper?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]