Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
1

AutoMapper не в тот тип мэппит

23.02.2017, 18:32. Показов 582. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем пример. Возникла проблема с Автомэпером, а точнее с мэпом наследуемого на базовый тип.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A{
   public int x{get;set;}
}
 
class B : A{
   
}
 
        public static void Main() {
            Mapper.Initialize(cfg => cfg.CreateMissingTypeMaps = true);
            var b = new B();
            A a1 = Mapper.Map<A>(b);
            A a2 = Mapper.Map<B, A>(b);
            Console.WriteLine(typeof(a1));  
            Console.WriteLine(typeof(a2));
        }
Почему в обоих случаях выводится тип B ?
Как сделать чтобы тип оказался А?

Кстати в обратную сторону все корректно работает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2017, 18:32
Ответы с готовыми решениями:

select @@identity возвращает не тот тип?
есть хранимка, возвращает @@Identity на клиенте int i=(int)comm.ExecuteScalar(); вылетает с...

IEnumerable<T>, IQueryable<T> когда лучше использовать тот или иной тип коллекций
IEnumerable&lt;T&gt;, IQueryable&lt;T&gt; когда лучше использовать тот или иной тип коллекций?

Typeid возвращает не тот тип
Здравствуйте, понадобилось сделать массив указателей на базовый класс и присвоить его элементам...

Вроде, тот же тип, а ругается
Делаю проверку программе на выход. PrjClose проверяет можно ли сейчас закрыть if(PrjClose)then...

3
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
24.02.2017, 00:01 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
namespace ConsoleApplication12
{
    using System;
    using AutoMapper;
 
    internal class A
    {
        public int X { get; set; }
    }
 
    internal class B : A
    {
    }
 
    internal class Program
    {
        private static void Main()
        {
            Mapper.Initialize(cfg => { cfg.CreateMap<B, A>(); });
            var b = new B();
            A a1 = Mapper.Map<A>(b);
            A a2 = Mapper.Map<B, A>(b);
            Console.WriteLine(a1.GetType());
            Console.WriteLine(a2.GetType());
        }
    }
}
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
24.02.2017, 11:59  [ТС] 3
спасибо, то есть получается без этих "регистраций" никак не получится? даже мы в параметрах указали строго какие в какие тип конвертить при вызове map?
насколько же тупой мэппер....

пожалуй начну искать более нормальную либу...
0
Эксперт .NET
12078 / 8387 / 1281
Регистрация: 21.01.2016
Сообщений: 31,595
24.02.2017, 13:04 4
borovik, AutoMapper не тупой. Просто для каждого отдельного случая его нужно конфигурировать. Мне кажется, что добавить одну строку вида cfg.CreateMap<B, A>(); не такая уж и тяжёлая работа.
0
24.02.2017, 13:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2017, 13:04
Помогаю со студенческими работами здесь

В каких случаях нужно применять тот или иной тип?
Привет, ребята! Извините за глупый вопрос, только начинаю осваивать язык С. Вопрос такой: в С...

Почему перегруженные шаблоны функций должны возвращать один и тот же тип?
Так как я еще очень плохо знаю шаблоны и никак не могу понять. Почему у всех перегруженных...

Написать функцию, которая возвращает тот или иной тип переменной по условию
Привет, я тут делаю кое-что. У меня вопрос. А могу ли я сделать функцию, которая возвращает тот или...

Automapper many to one
Добрый день. Пишу проект на asp.net mvc 5. И часто возникают ситуации когда захожу в тупик, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru