Включите несколько ссылок на втором уровне


Предположим, у нас есть эта модель :

public class Tiers
{
    public List<Contact> Contacts { get; set; }
}

и

public class Contact
{
    public int Id { get; set; }
    public Tiers Tiers { get; set; }
    public Titre Titre { get; set; }
    public TypeContact TypeContact { get; set; }
    public Langue Langue { get; set; }
    public Fonction Fonction { get; set; }
    public Service Service { get; set; }
    public StatutMail StatutMail { get; set; }
}

С EF7 я хотел бы получить все данные из таблицы уровней, с данными из таблицы контактов, из таблицы титров, из таблицы TypeContact и так далее ... с одной инструкции. С Include / ThenInclude API я могу написать что-то вроде этого :

_dbSet
     .Include(tiers => tiers.Contacts)
          .ThenInclude(contact => contact.Titre)
     .ToList();

но после свойства Titre я не могу включать другие ссылки, такие как TypeContact, Langue, Fonction ... Включить метод предлагает объекты уровней, а затем Include предлагает объект титра, но не объект контакта. Как я могу включить все ссылки из моего списка контактов? Можем ли мы достичь этого с помощью одной единственной инструкции?

1   51   2015-05-06 12:11:43

1 ответ:

.ThenInclude() будет цепочка от любого из последних .ThenInclude() и последний .Include() (в зависимости от того, что является более поздним), чтобы вытащить несколько уровней. Чтобы включить несколько братьев и сестер на одном уровне, просто используйте другой