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();

OrderCart实体不会更新。但是插入Paypal对象。没有错误或任何异常,这包含在 try..catch 子句中。

这里似乎有什么问题?存储库代码返回对象正常。

EF 4 不会更新数据库上的数据库记录.保存更改()

我在这里看到订单和购物车的一个共同点,而PayPal则不同。PayPal使用代码中显示的上下文插入,但购物车和订单是从存储库下载的。确保存储库使用相同的上下文。

所以... 当插入工作但更新不起作用时,我查看 AutoDetectChange 属性(在上下文中。配置(。

如果您不希望进行此跟踪(平均自动检测更改 = false(,则必须手动将修改的实体设置为已修改 (实体状态(。

(插入有效,因为 Add 方法修改了对象的实体状态(