Глобальный фильтр по полю, которого нету в сущности

Можно ли в EF сконфигурировать сущность так, чтобы применить глобальный фильтр по полю, которого нету в модели?

Допустим, у меня для каких-то целей есть ненормализованная сущность и я хочу туда замапить несколько моделей и в каждом маппинге модели прописать глобальный фильтр, которого нет среди полей.


Ответы (1 шт):

Автор решения: RusArt

Использованию shadow properties посвящен раздел документации.

Настроить глобальный фильтр можно в методе OnModelCreating используя HasQueryFilter. В документации даже есть пример глобального фильтра на такое свойство:

modelBuilder.Entity<Blog>().HasQueryFilter(b => EF.Property<string>(b, "_tenantId") == _tenantId);
→ Ссылка