Я использую EFCache (https://github.com/moozzyk/EFCache) для кэширования в памяти объектов на уровне данных. Однако у меня есть кэширование на других уровнях моего приложения (например, на бизнес-уровне, которые могут выполнять некоторую сложную логику дляполучить свойство кэшированной сущности, которое я также хотел бы кэшировать), которое я хотел бы сделать недействительным при обновлении рассматриваемых сущностей в БД. Я не могу найти способ подключиться к механизму аннулирования EFCacheЛюбая идея, как я могу сделать это или, возможно, другую библиотеку, которая лучше для этого? Ниже приведен простой пример:
MyEntity
- это объект в базе данных, который имеет свойство Name
. Когда я запрашиваю этоEFCache автоматически кэширует его в памяти. Когда свойство Name
кэшируемой сущности обновляется в Db, EFCache автоматически делает недействительной эту кэшированную сущность.
Теперь в моей бизнес-логике MyEntity
имеет свойство, называемоеCalculatedProperty
, который немного интенсивно обрабатывает, который я хотел бы также кэшировать. Кэш свойств должен быть недействительнымd когда MyEntity
кэш на уровне данных недействителен EFCache.