var paymentAttempt = _auctionContext.PaymentAttempts.Where(o => o.Id == paymentAttemptId).SingleOrDefault();
if (paymentAttempt != null)
{
paymentAttempt.PaymentAttemptStatusId = (int)PaymentAttemptStatus.Defunct;
paymentAttempt.PaymentAttemptStatus = _auctionContext.PaymentAttemptStatuses.Where(pas => pas.Id == paymentAttempt.PaymentAttemptStatusId).First();
var relevantWinningBidsTotalPrices = _auctionContext.GetWinningBidsTotalPricesForPaymentAttempt(paymentAttemptId).ToArray();
foreach (var winningBid in relevantWinningBidsTotalPrices)
{
winningBid.Locked = false;
_auctionContext.UpdateObject(winningBid);
}
_auctionContext.SaveChanges();
}
Nel codice di cui sopra, dopoEntity Framework SaveChanges() non l'aggiornamento del database
_auctionContext.SaveChanges();
si chiama winningBid
viene aggiornato come previsto, ma non è paymentAttempt
. Perchè è questo? È davvero frustrante. Non ci sono errori neanche. Mi aspetterei che si verificasse un errore se ci fosse un problema come EF non stava rintracciando l'oggetto o qualcosa del genere, ma non si sta verificando tale errore.
Usa Collegare per ottenere la vostra entità modificata nel contesto. Prima di salvare. Il contesto non aveva idea di cosa tu stia parlando. – Tabish