2016-12-19 4 views
0

이 경우 위키를 따라 가는데 문제가 있습니다. Automapper 5.2를 사용하고 싶었습니다. 나는 문맥을 가진 단단한 윤곽을 보여주는 끝 예를위한 간단한 끝을 찾아 낼 수 없다. 상황에 따라서는 config 파일을 어디에두고 정적 및 인스턴스 api의 차이점이 있습니까?Automapper 5.1 설정하기

DNRTV 다운로드를 확인했지만 1.0 버전을 처리했습니다.

이 패키지를 어떻게 설정합니까? 아래에 Client라는 모델이 있습니다.

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 core를 사용하고 있습니다 .. Global.asax 파일이 없습니다 ..

무엇이 있다면 Startup.cs 파일에 넣으십시오.

위의 두 파일을 통해 Automapper를 사용하려면 어떻게해야합니까?

감사합니다 여기에

답변

7

는 asp.net 코어 MVC에서 automapper을 구성하는 단계입니다.

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 void ConfigureServices(IServiceCollection services) 
{ 
    services.AddDbContext<DBContext>(options =>options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
    services.AddMvc(); 

    services.AddAutoMapper(); 
} 
+0

뭔가 콘크리트에 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. 전화 확장 방법이 추가 할 수 있습니다. . 고마워요. .. 이걸로 투표 할거야! .. 나는 질문이있다. ". – si2030

+0

위의 예제와 같은 양방향 매핑을 수행했습니다. Client to ClientViewModel 및 ClientViewModel to Client – Ahmar

+0

나는 이것을 투표했습니다. – si2030