Существует плагин под названием FasterCSV, который обрабатывает это замечательно.
Как насчет этого:
var results = from developer in ctx.Employee.OfType<Developer>()
select new {developer, Qualifications = developer.Qualifications};
Здесь есть интересные вещи:
, если вы впоследствии сделаете это:
var developers = from anon in developers.AsEnumerable()
select anon.Developer;
Вы получите только разработчиков, и у них также будут загружены их квалификации.
См. Совет 1 для получения дополнительной информации о почему это работает
Надеюсь, это поможет
Alex
Я не знаком с EF, но мне это кажется стандартной проблемой наследования. Если вы хотите получить доступ к уникальным свойствам дочернего класса из коллекции 'parent'
Я столкнулся с этой проблемой и немного экспериментировал. Вот то, что я нашел, работал с использованием Linq 2 объекта.
Скажем, у нас есть в своем примере человека <- разработчик ---- квалификации.
Если вы хотите выбрать разработчик с квалификацией включенных, вы сделаете это.
var dev = (from d in context.Persons.OfType<Developer>
.Include("Qualifications")
where d.ID == id
select d).FirstOfDefault();
Теперь давайте скажем, у нас есть другая ассоциация между лицом и адресом, мы также можем включать адрес в выбор также с использованием объекта Linq 2.
var dev = (from d in context.Persons
.Include("Address")
.OfType<Developer>()
.Include("Qualifications")
where d.ID == id
select d).FirstOfDefault();
Обратите внимание, как я включил то, что мне нужно, прежде чем я преобразовал тип, а также снова включен после преобразования. Оба включены, теперь должны работать вместе без каких-либо проблем. Я проверил эти методы, и они оба работают. Я надеюсь, что они работают на вас, дали вам правильно установить наследство.
GL.