Я определяю:
[ActiveRecord("BaseEntity", Lazy = true )]
class BaseClass {}
[ActiveRecord("DerivedEntity", Lazy = true )]
class DerivedClass : BaseClass {}
В БД BaseEntity и DerivedEntity равны 1 = 1
Я создаю:
BaseClass myClass = New DerivedClass();
Проблема:
Когда я пытаюсь спросить
myClass is DerivedClass
я получаю "ложь", потому что myClass не является DerivedClass, а является BaseClassProxy.
Без отложенной загрузки NHibernate не создает прокси-объект, и у меня нет этой проблемы.
Когда я пытаюсь привести myClass к DerivedClass, я получаю эту ошибку (очевидно), потому что я пытаюсь привести объект BaseClassProxy к DerivedClass.
Unable to cast object of type 'Castle.Proxies.BaseClassProxy' to type 'DerivedClass'.
Вопросы:
Как я могу получить реальный назначенный тип объекта, чтобы сравнить его с DerivedClass?.
Можно ли привести объект BaseClassProxy для получения экземпляра DerivedClass?.
Спасибо за ответы.