0
は、このコードを考えてみては動作しません。 Ignore()
で試しましたが、同じ問題があります。更新既存のエンティティは
は、このコードを考えてみては動作しません。 Ignore()
で試しましたが、同じ問題があります。更新既存のエンティティは
あなたのやり方ではうまくいかない理由はわかりませんが、初期化中に設定することは効果的です。
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Entity, EntityModel>()
.ReverseMap().ForMember(x => x.Messages, o => o.Ignore());
cfg.CreateMap<Message, MessageModel>()
.ReverseMap();
});
Mapper.Configuration.AssertConfigurationIsValid();
var model = new EntityModel() { Messages = new List<MessageModel>() { } };
var entity = new Entity() { Messages = new List<Message>() { new Message() { Content = "Test" } } };
Mapper.Map(model, entity);
Assert.IsTrue(entity.Messages.Count == 1);
EDIT:
インライン設定では、Initialize
方法ですでに設定を提供している場合は効果がありません。だから、それはあなたがしなければならない作業を取得する:
Mapper.Initialize(cfg => { });
Mapper.Configuration.AssertConfigurationIsValid();
var model = new EntityModel() { Messages = new List<MessageModel>() { } };
var entity = new Entity() { Messages = new List<Message>() { new Message() { Content = "Test" } } };
Mapper.Map(model, entity, opt => opt.ConfigureMap().ForMember(x => x.Messages, o => o.Ignore()));
はい、私は私のそれはあなたのケースで私のassertIsValid失敗 – Arnaud
@Arnaud、インライン設定をオーバーライドするためにあることを意味しない、私のメインの設定を上書きだ可能に期待しています。詳細はこちら:http://docs.automapper.org/en/stable/Inline-Mapping.html#inline-configurationそして、アサーションはどちらの場合でも失敗しません。 –