У меня есть классы вроде:
Person
{
Name
Address
}
Employee : Person
{
Compensation - object
}
Visitor : Person
{
}
Если я напишу linq:
var persons = Context.Persons
.Include("Compensation");
Я получаю ошибку:
Указанный путь Include недействителен. EntityType 'Person' не делает объявить свойство навигации с помощью имя "Компенсация".
Он работает нормально, если я делаю:
var persons = Context.Persons
.OfType<Employee>()
.Include("Compensation");
Но я хотел бы получить Сотрудников и посетителей в том же запросе.
Похоже, есть запрос на эту функцию в EF4 UserVoice: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1249289-include-property-of-derived-classes?ref=title
но это не похоже, что это будет сделано в ближайшее время.
Каков хороший способ обхода проблемы?