2016-12-19 15 views
0

私はこのインスタンス内のwiki、次の問題が発生した午前の設定。 Automapper 5.2を使いたかったのです。私は、文脈のある固い構成を示す最終的な例のための単純な終わりを見つけることができません。文脈では、設定ファイルはどこに置かれ、静的とインスタンスの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ファイルはありません...彼らはGlobal.asaxファイルについて話すと、私はASPNETコアを使用しています、あなたはどちらかといえばStartup.csファイルに入れて何をすべきか

です。この2つのファイルを考えると

何上記の私は彼らとAutomapperを使用するために何が必要ですか?ここで

よろしく

答えて

7

はasp.netコアMVCでautomapperを設定するための手順です。

1. AutoMapper設定クラスを作成し、ここにマッピングプロファイルクラスを追加Profile

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

2.から延びマッピングプロファイルクラスを作成します。

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()); } } 

にこれを追加することができます。私は質問をしています.. "ReverseMap()"は何をするのですか? – si2030

+0

上記の例のような双方向マッピングを行いましたClient to ClientViewModelとClientViewModelからClient – Ahmar

+0

私はこれを投票しました。 – si2030