При использовании C# и EF Core 8 у меня возникла очень случайная и необычная проблема.
У меня есть приложение, которое использует Docker и Kafka для обработки больших объемов данных. У меня есть несколько экземпляров одной и той же службы, которые асинхронно обрабатывают эти данные, разделением которых управляет Kafka, и все они считывают данные из одной и той же базовой базы данных.
Пример того, что такое Дело в том, что у меня есть пакет из более чем 30 000 записей, которые необходимо обработать, для их обработки у меня запущено 3 службы. Логика в каждом из применений использует .FindAsync для чтения данных, которые используются в качестве ссылки во время обработки. Иногда возникает 1 или 2 исключения NullReferenceException @ 'System.Data.Entity.Core.Common.Internal.Materialization.Shaper`1.Finally'.
Это никогда не происходит для одних и тех же данных, которые обрабатываются.
Я понимаю, что «.FindAsync» сначала будет искать объект в кеше БД, если отслеживание включено, а если ничего не найдено, то перейдет к БД для чтения. Существует ли вероятность того, что кеш может каким-то случайным образом повредиться, что приведет к тому, что чтение выдаст исключение NullReferenceException при попытке сопоставления с объектом сущности?
Я буквально потратил на это несколько дней и получил в значительной степени исчерпаны все обычные проблемы NullReferenceException, которые обычно возникают при доступе к свойствам, и я в тупике.
Кто-нибудь вообще когда-нибудь сталкивался с этим?
Подробнее здесь: https://stackoverflow.com/questions/791 ... tem-data-e
Entity Framework Core 8. Ошибка случайной ссылки на объект FindAsync @ System.Data.Entity.Core.Common.Internal.Materiali ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Entity Framework savechanges () против savechangesasync () и find () против findasync ()
Anonymous » » в форуме C# - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-