EF 4 не обновляет запись базы данных на db.SaveChanges () - PullRequest
0 голосов
/ 10 марта 2012

Привет. У меня есть фрагмент кода ниже:

            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.

В чем здесь проблема?Репозиторий кодов возвращает объект штрафа.

Ответы [ 2 ]

2 голосов
/ 10 марта 2012

Я вижу здесь одну общую черту для заказа и корзины и другую для Paypal. Paypal вставляется с использованием контекста, который показан в коде, но Корзина и Заказ загружаются из хранилища. Убедитесь, что хранилище использует тот же контекст.

1 голос
/ 10 марта 2012

Итак ... когда вставка работает, а обновление - нет, я смотрю на свойство AutoDetectChange (в context.Configuration).

Если вам не нужно это отслеживание (имеется в виду AutoDetectChange = false), вы должны вручную настроить измененные объекты как измененные (EntityState).

(вставка работает, потому что метод Add изменяет объект entityState)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...