Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3308|Отговор: 0

[Източник] EF concurrency изключение DbUpdateConcurrencyException прави повторно заявки към кешираната стойност

[Копирай линк]
Публикувано в 1.11.2023 г. 20:30:43 ч. | | | |
Изисквания: Използвайте EF оптимистични заключвания за контрол на паралелността, ако срещнете конкурентност, добавете механизъм за повторен опит, установете, че данните, които се заявяват отново след опита, са кеширани от EF, което води до винаги запазване на изключения.

Операцията с базата данни се очакваше да засегне 1 ред(и), но всъщност засегна 0 реда(и); Данните може да са били модифицирани или изтрити след зареждането на обектите. ВиждамВходът към хиперлинк е видим.За информация относно разбирането и обработката на оптимистични изключения от конкурентността.

Тази дискусия доведе до мисли относно кеширането на заявки в EF 6.x и EF Core:Входът към хиперлинк е видим.

Обработка на разграничението между едновременно времеви печати и конкурентни проверки
https://www.itsvse.com/thread-3616-1-1.html

Както е показано по-долу:



SQL скрипт:

ASP.NET Core 6 бекенд код:

Код на контролера:



Вариант 1 (препоръчително)

използвамEntityState.DetachedМаркирайки състоянието на обекта като непроследявано от контекста, модифицирайте го по следния начин:

Както е показано по-долу:



Опция 2

Извикайте метода Reload(), за да обновите обекта на обекта, кодът е следният:

Въпреки че презареждането може също да обновява кеша на EF,Това води до изпълнение на SQL заявки повече от веднъжЗатова не се препоръчва.

Другите два метода, AsNoTracking, не са подходящи, а другият не е тестван.

(Край)




Предишен:.NET преобразува варбинарен низ от базата данни в байт[] масив
Следващ:OpenWRT настройки за стартиране на командата за изпълнение
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com