在第二级包含几个参考
假设我们有这个模型:
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,我希望通过一个指令从层级表中检索所有数据,包括来自联系人表格的数据,来自Titre表格的数据,来自TypeContact表格等等。 使用Include / ThenInclude API我可以这样写:
_dbSet .Include(tiers => tiers.Contacts) .ThenInclude(contact => contact.Titre) .ToList();
但是在Titre属性之后,我不能包含像TypeContact,Langue,Fonction等其他引用。包含方法暗示了一个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.