Платформа объекта - наследование с.Include?

Существует плагин под названием FasterCSV, который обрабатывает это замечательно.

9
задан Isaac Abraham 22 September 2009 в 17:32
поделиться

3 ответа

Как насчет этого:

var results = from developer in ctx.Employee.OfType<Developer>()
              select new {developer, Qualifications = developer.Qualifications};

Здесь есть интересные вещи:

  1. мы исключаем сотрудников, которые не разработчики
  2. , мы затем проектируем их квалификацию, и как побочный эффект этой проекции, что-то называется исправлением с заливкой каждого Разработчик.Квалификация тоже. Т.е. это еще один способ добиться тот же эффект, что и Include ().

, если вы впоследствии сделаете это:

var developers = from anon in developers.AsEnumerable()
                 select anon.Developer;

Вы получите только разработчиков, и у них также будут загружены их квалификации.

См. Совет 1 для получения дополнительной информации о почему это работает

Надеюсь, это поможет

Alex

3
ответ дан 4 December 2019 в 11:42
поделиться

Я не знаком с EF, но мне это кажется стандартной проблемой наследования. Если вы хотите получить доступ к уникальным свойствам дочернего класса из коллекции 'parent'

0
ответ дан 4 December 2019 в 11:42
поделиться

Я столкнулся с этой проблемой и немного экспериментировал. Вот то, что я нашел, работал с использованием 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.

12
ответ дан 4 December 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: