2016-12-19 9 views
0

У меня возникла проблема после вики в этом случае. Я хотел использовать Automapper 5.2. Я не могу найти простой конец для конечного примера, который показывает сплошную конфигурацию с контекстом. В контексте я имею в виду, где вы помещаете файлы конфигурации и каково различие между static и api экземпляра?Настройка Automapper 5.1

Я проверил загрузку DNRTV, но имеет дело с версией 1.0.

Как вы устанавливаете этот пакет? У меня есть модель под названием Клиент, как показано ниже.

public class Client : IEntityBase 
{ 
    public Client() 
    { 
     Jobs = new List<Job>(); 
    } 
    public int Id { get; set; } 
    public int ClientNo { get; set; } 
    public bool Company { get; set; } 
    public string CompanyName { get; set; } 
    public string ClientFirstName { get; set; } 
    public DateTime DeActivated { get; set; } 
    public bool Activity { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 

    public int? StateId { get; set; } 
    public State State { get; set; } 

    public int CreatorId { get; set; } 
    public User Creator { get; set; } 

    public ICollection<Job> Jobs { get; set; } 
} 

и ClientViewModel, как так:

public class ClientViewModel 
{ 
    public int Id { get; set; } 
    public int ClientNo { get; set; } 
    public bool Company { get; set; } 
    public string CompanyName { get; set; } 
    public string ClientFirstName { get; set; } 
    public DateTime DeActivated { get; set; } 
    public bool Activity { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 
    public int? StateId { get; set; } 
    public int CreatorId { get; set; } 
    public int[] Jobs { get; set; } 
} 

Я не уверен, как установить AutoMapper с учетом конфигурации. То есть, они говорят о файле global.asax, и я использую ядро ​​aspnet. Нет файла Global.asax.

Что вы вкладываете в файл Startup.cs, если что-нибудь.

Учитывая эти два файла выше, что мне нужно сделать, чтобы использовать Automapper с ними?

С уважением

ответ

7

Вот шаги по настройке automapper в основной asp.net MVC.

1. Создать отображение класса профиля, который простирается от Profile

public class ClientMappingProfile : Profile 
{ 
    public ClientMappingProfile() 
    { 
     CreateMap<Client, ClientViewModel>().ReverseMap(); 
    } 
} 

2. создать класс конфигурации AutoMapper и добавить свой класс отображение профиля здесь.

public class AutoMapperConfiguration 
{ 
    public MapperConfiguration Configure() 
    { 
     var config = new MapperConfiguration(cfg => 
     { 
      cfg.AddProfile<ClientMappingProfile>(); 
     }); 
     return config; 
    } 
} 

3. Создать метод расширения так, мы можем добавить к этому методу Startup.cs ConfigureServices

public static class CustomMvcServiceCollectionExtensions 
{ 
    public static void AddAutoMapper(this IServiceCollection services) 
    { 
     if (services == null) 
     { 
      throw new ArgumentNullException(nameof(services)); 
     } 
     var config = new AutoMapperConfiguration().Configure(); 
     services.AddSingleton<IMapper>(sp => config.CreateMapper()); 
    } 
} 

4. вызова метод расширения в Startup.cs ConfigureServices методом

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddDbContext<DBContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
    services.AddMvc(); 

    services.AddAutoMapper(); 
} 
+0

что-то конкретное. спасибо очень много .. будет голосовать это! ... У меня есть вопрос .. что делает ".ReverseMap()" делать? – si2030

+0

Он сделал двунаправленное сопоставление, как в приведенном выше примере Клиент для ClientViewModel и ClientViewModel для клиента – Ahmar

+0

Я проголосовал за это. – si2030

Смежные вопросы