головному коді asp net core (CoreContext), інший в background service, для першого виконується деякий код у using (var scope = .../* serializable */) {}
потім у бекграунд сервіс виконується код у using (var scope = .../* read committed */) {}
І ВІН ЧИТАЄ СТАРІ ДАНІ. Постійно. Поки не вимкну та увімкну сервер. Чому так?
Якщо шо, другий SomeContext це клас просто зроблений з class SomeContext: CoreContext { /* ну і якийсь код щоб заткнути компілятор */ }
Яка БД?
sql server 2021
І який рівень сихнронізації транзакцій?
це шось нове для мене
куди іти, або яке рішення пошвидше є? я раніше думав що синхронізація обов'язково проходить з await ...SaveChangesAsync()
БД, для того щоб працювати з транзакціями має певні стратегії менеджменту існуючих і нових даних при паралельних запитах. Це називають рівнем ізоляції транзакцій. Для MS SQL Server їх 5. https://learn.microsoft.com/en-us/sql/t-sql/language-elements/transaction-isolation-levels?view=sql-server-ver16
Я там помилився, не синхронізація, а ізоляція :)
тобтоо мені потрібен read uncommited? а як його закоммітить
Читай, і думай який саме рівень ізоляції тобі потрібен. Але май на увазі, що для кожного з рівнів ізоляції є свої характерні проблеми. Про них можеш почитати в інеті, їх не важко нагуглити. Для read uncommitted, наприклад, характерні dirty reads, non-repeatable reads та phantom reads
Обсуждают сегодня