Я сталкивался с этой проблемой и немного экспериментировал. Вот что я обнаружил, работая с помощью LINQ 2. Entity.
Скажем, у нас в вашем примере Персона <- Разработчик ---- Квалификация. </p>
Если вы хотите выбрать разработчика с включенными квалификациями, вы должны сделать это.
var dev = (from d in context.Persons.OfType<Developer>
.Include("Qualifications")
where d.ID == id
select d).FirstOfDefault();
Теперь предположим, что у нас есть другая связь между Персоном и Адресом, мы также можем включить Адрес в выборку, также используя LINQ 2. Entity.
var dev = (from d in context.Persons
.Include("Address")
.OfType<Developer>()
.Include("Qualifications")
where d.ID == id
select d).FirstOfDefault();
Обратите внимание, как я включил то, что мне было нужно до того, как я преобразовал Тип, а также снова включил после преобразования. Оба включения теперь должны работать без проблем. Я проверил эти методы, и они оба работают. Я надеюсь, что они работают на вас, если вы правильно настроили наследование.
GL.