Свойство активной загрузки производного класса с использованием Include

У меня есть такие классы, как:

Person
{
   Name
   Address
}

Employee : Person
{
   Compensation - object
}

Visitor : Person
{

}

Если я напишу linq:

var persons = Context.Persons
                .Include("Compensation");

, я получаю сообщение об ошибке:

Указанный путь включения не является допустимым. EntityType 'Person' не объявить свойство навигации с назовите «Компенсация».

Если я это сделаю, это будет работать нормально:

var persons = Context.Persons
                .OfType()
                .Include("Compensation");

Но я хотел бы получить сотрудников и посетителей в одном запросе.

Похоже, есть запрос на эту функцию на EF4 UserVoice: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1249289-include-property-of-deved-classes?ref=title

, но не похоже, что это будет сделано в ближайшее время.

Какой хороший способ решения этой проблемы?

15
задан Eric P 7 June 2011 в 10:51
поделиться