Entity Framework Read. Незаконченное влияние на связанные представления базы данных - PullRequest
0 голосов
/ 22 февраля 2020

В веб-приложении MVC у меня есть действие, которое выполняет много дБ обновлений. Он заключен в транзакцию со следующими параметрами:

new TransactionScope(
                  TransactionScopeOption.RequiresNew, // a new transaction will always be created
                  new TransactionOptions() { IsolationLevel = IsolationLevel.ReadUncommitted }, // we will allow volatile data to be read during transaction
                  TransactionScopeAsyncFlowOption.Enabled //Allows transactions to work in async/await scenarios. Without this flag, an exception is thrown in such cases. 
)
  • В рамках этой транзакции мы обновляем таблицу A.
  • У нас есть dB View B, который выбирает данные из таблицы A, среди многих другие таблицы и выполняет сложные вычисления, которые мы не хотим копировать в нашем коде.
  • Нам также необходимо извлечь данные из представления B в рамках этой же транзакции.

Проблема: вычисления в представлении B, которые зависят от таблицы A, не используют новые значения в Таблица A после того, как они были обновлены ранее в транзакции.

Есть ли в любом случае "refre sh" представление B, чтобы оно использовало эти обновленные значения в таблице A в транзакции? Или мне нужно зафиксировать изменения, а затем повторно запросить базу данных? Я действительно не хочу этого делать, потому что логика c, которая следует после запроса View B, в случае сбоя, должна откатить все обновления до.

...