Asp.net-Core-Mvc

在第二級包括幾個參考

  • May 6, 2015

假設我們有這個模型:

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,我想用一條指令從 Tiers 表中檢索所有數據,從 Contact 表、Titre 表、TypeContact 表等中檢索所有數據。使用 Include/ThenInclude API,我可以編寫如下內容:

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

但是在 Titre 屬性之後,我不能包含其他引用,例如 TypeContact、Langue、Fonction … Include 方法建議使用 Tiers 對象,然後 ThenInclude 建議使用 Titre 對象,而不是 Contact 對象。如何包含我的聯繫人列表中的所有引用?我們可以通過一條指令實現這一目標嗎?

.ThenInclude()將連結最後一個.ThenInclude()或最後一個.Include()(以較新的為準)以拉入多個級別。要在同一級別包含多個同級,只需使用另一個.Include()鏈。正確格式化程式碼可以大大提高可讀性。

_dbSet
   .Include(tiers => tiers.Contacts).ThenInclude(contact => contact.Titre)
   .Include(tiers => tiers.Contacts).ThenInclude(contact => contact.TypeContact)
   .Include(tiers => tiers.Contacts).ThenInclude(contact => contact.Langue);
   // etc.

引用自:https://stackoverflow.com/questions/30072360