2017-05-18 1 views
1

mimeMessage_MailBoxをAutomapperを使用してemail_MailBoxエンティティに変更したいのですが、設定コードは次のようになります。外部設定クラスを使用するASP.NET Automapper

public static class AutoMapperConfiguration 
{ 

    public static void configure() { 
     Mapper.CreateMap<mimeMessage_MailBox, email_MailBox>() 
      .ForMember(dest => dest.SenderName, opt => opt.MapFrom(src => src.From.Mailboxes.ToString())) 
      .ForMember(dest => dest.EmailSubject, opt => opt.MapFrom(src => src.Subject)) 
      .ForMember(dest => dest.EmailCC, opt => opt.MapFrom(src => string.Join(",",src.Cc.Mailboxes.ToString()))) 
      .ForMember(dest => dest.ReceiverEmail, opt => opt.MapFrom(src=>string.Join(",", src.To.Mailboxes.ToString()))) 
      .ForMember(dest => dest.EmailBody, opt => opt.MapFrom(src=>src.Body.ContentBase.OriginalString)); 

    } 

今DbContextにデータを保存するには、

public void Save(mimeMessage_MailBox mail) 
    { 
     email_MailBox mailbox = new email_MailBox(); 
     using (EmailEntityModelContext context = new EmailEntityModelContext()) 
     { 
      context.email_MailBox.Add(Mapper.Map<mimeMessage_MailBox, email_MailBox>(mail, mailbox)); 
      context.SaveChanges(); 

     } 

ようになり、私は保存()メソッド内AutoMapperConfiguration.configure()を呼び出す必要がありますか? DI魔法のようなものがありますか? 助けてください。

答えて

0
Mapper.CreateMap() 
Mapper.Map() 

これらのメソッドは、スタティック(グローバル)Automapperインスタンスを使用します。したがって、アプリケーション一生につき1回、CreateMapに電話するだけで十分です。

FYI:追加のマッパーインスタンスを作成し、そのライフタイムを制御できます。ドキュメント:Static and Instance APIを読んでください。

+0

https://lostechies.com/jimmybogard/2009/05/12/automapper-and-ioc/のようなIoCをチェックして、 – Marks

+0

@マークを読み込めるようにしました。何をしようとしていますか? Iocで解決しますか? –

関連する問題