在第二級包含多個引用

asp.net-core-mvc entity-framework-core

假設我們有這個模型:

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

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

使用EF7,我想從Tiers表中檢索所有數據,包括來自Contact表,Titre表,TypeContact表等的數據......只需一條指令。使用Include / ThenInclude API,我可以這樣編寫:

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

但是在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.



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因