У меня ~ 40 классов, и все они реализуют интерфейс IEntity.
Из ~ 40 классов многие используют сопоставление «многие к одному» со свойством IEntity. Примером этого может быть:
"IEntity.cs"
public interface IEntity
{
Guid ID
...Other properties (~7 of them)
}
"Item.cs"
public class Item : IEntity
{
Public Guid ID {get;set;}
...Other IEntity Properties
Public IEntity Owner {get;set;}
}
Полагаю, что для отображения свойства Owner на Item мне нужно использовать NHibernate, мне нужно будет использовать одно из отображений наследования NHibernate, используя IEntity в качестве основы.
Проблема в том, что конфигурация кэша 2-го уровня связана с определением класса, а не с подклассами. Мне нужно было бы включить кэширование для всех ~ 40 классов в моей модели за один раз, и я бы не смог просто кэшировать нужные мне классы, например категории.
Кто-нибудь знает, как я могу отобразить сущность, у которой есть свойство, которое является типом абстрактной сущности, не теряя способности делать выбор в кэш 2-го уровня?