Entity Framework (v6) Стремительная загрузка - странное поведение - PullRequest
0 голосов
/ 15 ноября 2018

Должны ли следующие два запроса быть эквивалентными?(обратите внимание на размещение .Include)

== (V1)

using (var ctx = new Entities()) {

    ctx.Configuration.ProxyCreationEnabled = false; //return stronglyTyped Entity, not dynamic entity...

    IQueryable<TB_MyHeader> query = from hd in ctx.TB_MyHeader.Include(h => h.TB_MyLines)
        join wo in ctx.TB_AnotherTable on hd.fkId equals wo.ID
        where wo.woPk == @id
    orderby hd.PoItem
    select hd;

    var headerPlusLines = query
        .AsNoTracking() 
        .ToList();

    return headerPlusLines;
}

== (V2)

using (var ctx = new Entities()) {

    ctx.Configuration.ProxyCreationEnabled = false; //return stronglyTyped Entity, not dynamic entity...

    IQueryable<TB_MyHeader> query = (from hd in ctx.TB_MyHeader
        join wo in ctx.TB_AnotherTable on hd.fkId equals wo.ID
    where wo.woPk == @id
    orderby hd.PoItem
    select hd)
    .Include(h => h.TB_MyLines);


    var headerPlusLines = query
        .AsNoTracking() 
        .ToList();

    return headerPlusLines;
}

Первая версия (V1) может неизвлекать дочерние элементы в свойство Nav, в зависимости от сочетания того, как ProxyCreationEnabled и LazyLoadingEnabled установлены в значение true / false.

Фактически, происходит противоположное ожидаемому результату;если я установил LazyLoadingEnabled = false, дочерние элементы вообще не загружаются;Когда я ожидал, что он не будет ленивым, загрузите его сейчас!

Что происходит?

...