LazyLoadingEnabled è impostato su true per impedire il caricamento delle entità correlate nel contesto che sto utilizzando.DBContext lazyloadingenabled impostato su true still carichi entità correlate per impostazione predefinita
Una classe di farmaci contiene un elenco di oggetti di identità del farmaco.
public class Drug
{
public virtual List<DrugIdentity> DrugIdentities { get; set; }
}
Una configurazione specifica per la classe imposta la chiave e ha molte relazioni se si desidera includere l'entità correlata da caricare.
public DrugConfiguration()
{
this.HasKey(d => d.DrugID);
this.HasMany(d => d.DrugIdentities).WithOptional(d => d.Drug).Map(d => d.MapKey("DrugID"));
}
Quando il contesto Drug viene caricato utilizzando una query LINQ dell'oggetto mostra contiene DrugIdentities correlate quando non dovrebbe.
context.Configuration.LazyLoadingEnabled = true;
var drugs = from d in context.Drug
where d.Active == true
select d;
farmaci [0] count = 1
mi aspetterei farmaci [0] .DrugIdentities alla parità di NULL dal lazyloading è stato impostato a true .DrugIdentities?
Sembra che tu stia fraintendendo il carico pigro come l'opposto di quello che è in realtà. Caricamento lento indica che i dati ** vengono ** caricati automaticamente quando si accede a una proprietà di navigazione. Il ** contrario ** di questo, caricamento avido, è quando ottieni valori null per le proprietà della relazione a meno che tu non li carichi esplicitamente (con entusiasmo). –