对于单个CREATE
,我正在尝试UPDATE
或Payment
多个Order
。
如果记录存在于数据库中(Primary Key Value is not the default value
),我想更新记录,如果记录不存在于数据库中,我希望创建记录。目前,当我进行创建时,地图会根据Payment
添加新订单,添加必要的Lines
并添加Product
项和{{ 1}}即使它们已经存在。
我在所有DTO对象中使用Wallet
。这是一个例子
ReverseMap()
在OrderDTO,WalletDTO等中实现相同的逻辑。
如何在数据库中存在此记录时告诉AutoMapper不要创建新记录?
在控制器动作中,我尝试将子项附加到上下文中,如下conf.CreateMap<Payment, PaymentDTO>()
.ForMember(dest => dest.Amount, opt => opt.MapFrom(src => src.Amount))
.ForMember(dest => dest.C_Order, opt => opt.MapFrom(src => src.C_Order))
.ForMember(dest => dest.C_Wallet, opt => opt.MapFrom(src => src.C_Wallet))
.ForMember(dest => dest.DateOf, opt => opt.MapFrom(src => src.DateOf))
.ForMember(dest => dest.ID, opt => opt.MapFrom(src => src.ID))
.ForMember(dest => dest.Order, opt => opt.MapFrom(src => src.Billing_Invoice))
.ForMember(dest => dest.Wallet, opt => opt.MapFrom(src => src.CashWallet))
.ReverseMap();
,但似乎没有任何工作
答案 0 :(得分:0)
对于数据库中存在的实体,将它们附加到DbContext,或者将它们的状态设置为Unchanged。