私はいくつかの記事を読んで、MvcConf 1のビデオを見ましたが、Jimmy BogardはAutoMapperの使用法を示していますが、まだ混乱しています。AutoMapperの使用について混乱しています
私は、たくさんのプロパティを持つUser POCOクラスを持っています。私はまた、Userクラスのプロパティのサブセットを含むRegisterViewModelクラスを持っています。ユーザーが登録すると、ビューに渡された空のRegisterViewModelインスタンスにデータが埋め込まれます。このデータをデータベースに追加するには、Userインスタンスにマップする必要がありますが、Userには、DateTime.Nowに割り当てられるRegistrationDateのようなデフォルトのプロパティが必要です。この場合、私は何をしますか?
また、Userインスタンスを更新しているとします。まず、データベースからデータを取得し、それをUpdateUserViewModelクラスにマップする必要があります。その後、ユーザーが変更をサブミットすると、その変更はUserインスタンスに戻されなければなりません。この場合、設定ファイルに2つの別々のMapper.CreateMap <>()エントリを実行する必要がありますか、それともAutoMapperが自動的にそれを行いますか?
私はそれが今のところだと思います、あなたの助けが高く評価されます! AutoMapperは自動的に双方向のマッピングを定義していないので、あなたは二つの別々のマッピングを必要とする2番目のシナリオについて
Mapper
.CreateMap<RegisterViewModel, User>()
.ForMember(
dest => dest.RegistrationDate,
opt => opt.UseValue(DateTime.Now)
);
::)
私は見る。大変ありがとうございました!私はAutoMapperで遊んで、もっと慣れ親しんでみるつもりです。 – Kassem
UseTimeue with DateTime.Nowは正しくありません。毎回同じ日付になり、バグを追跡するのが難しくなるためです。これを見てください:http://automapper.codeplex.com/workitem/4056 – andreialecu