EF 4 不会更新数据库上的数据库记录.保存更改()
本文关键字:数据库 记录 保存更改 更新 EF | 更新日期: 2023-09-27 18:27:21
嗨,我在下面有这个代码片段:
Paypal paypal = new Paypal();
paypal.Invoice = transactionID;
paypal.TxnType = "";
paypal.CreateDate = DateTime.Now;
paypal.AmountPaid = payment;
paypal.PaymentStatusId = paymentStatus;
db.Paypals.Add(paypal);
db.SaveChanges();
// Order Does not Update
Order order = _orderRepository.GetOrderByOrderId(orderId);
order.OrderStatusId = OrderStatusConstant.Paid;
order.PurchasedDate = DateTime.Now;
order.LastModified = DateTime.Now;
order.PaypalIpnId = paypal.PaypalIpnId;
db.SaveChanges();
// Cart Does not Update
Cart cart = _cartRepository.GetCartByCartId(order.CartId);
cart.Completed = true;
db.SaveChanges();
Order
和Cart
实体不会更新。但是插入Paypal
对象。没有错误或任何异常,这包含在 try..catch
子句中。
这里似乎有什么问题?存储库代码返回对象正常。
我在这里看到订单和购物车的一个共同点,而PayPal则不同。PayPal使用代码中显示的上下文插入,但购物车和订单是从存储库下载的。确保存储库使用相同的上下文。
所以... 当插入工作但更新不起作用时,我查看 AutoDetectChange 属性(在上下文中。配置(。
如果您不希望进行此跟踪(平均自动检测更改 = false(,则必须手动将修改的实体设置为已修改 (实体状态(。
(插入有效,因为 Add 方法修改了对象的实体状态(