Asumsikan kita memiliki model ini:
public class Tiers
{
public List<Contact> Contacts { get; set; }
}
dan
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; }
}
Dengan EF7 saya ingin mengambil semua data dari tabel Tiers, dengan data dari tabel Contact, dari tabel Titre, dari tabel TypeContact dan seterusnya ... dengan satu instruksi tunggal. Dengan Include / ThenInclude API saya dapat menulis sesuatu seperti ini:
_dbSet
.Include(tiers => tiers.Contacts)
.ThenInclude(contact => contact.Titre)
.ToList();
Tetapi setelah properti Titre, saya tidak dapat menyertakan referensi lain seperti TypeContact, Langue, Fonction ... Metode Sertakan menyarankan objek Tiers, dan ThenInclude menyarankan objek Titre, tetapi bukan objek Kontak. Bagaimana saya bisa memasukkan semua referensi dari daftar Kontak saya? Bisakah kita mencapai ini dengan satu instruksi?
sumber
var contacts = _dbSet.Include(tiers => tiers.Contacts);
contacts.ThenInclude(contact => contact.Titre);
contacts.ThenInclude(contact => contact.TypeContact);
contacts.ThenInclude(contact => contact.Langue);
Bukankah itu berhasil?Queryable
objek baru setiap kali dan tidak pernah mengevaluasinya.contacts
hanya akan memiliki nilai asli yang Anda tetapkan padanya.Demi kelengkapan:
Dimungkinkan juga untuk menyertakan properti bertingkat secara langsung
Include
jika mereka bukan properti koleksi seperti:sumber