LINQ: DefaultIfEmpty() вызывает медленный ответ

Я сталкиваюсь с проблемой, когда DefaultIfEmpty() вызывает медленный ответ. Код похож на:

rslt = (
    from p in P.Where(p => p.fcode == fCode && p.year == year && p.is_deleted == false && p.pname != pNameS)
    from c in C.Where(c => c.fcode == fCode && c.ccode == p.ccode)
    from pf in PF.Where(pf => pf.fcode == fCode && pf.pcode == p.pcode).DefaultIfEmpty()
    from defHU in DEF.Where(def => def.fixed_key == Constants.HU && pf.hu == def.def_key).DefaultIfEmpty()
    from defAU in DEF.Where(def => def.fixed_key == Constants.AU && pf.pau == def.def_key).DefaultIfEmpty()
    select new PPShow{
        Year = p.year,
        PCode = p.pcode,
        PName = p.production_name,
        FCode = pf.fcode,
        Br = p.br,
        CName = c.cname,
        PArea = pf.parea,
        PAU = pf.pau,
        PAUName = defAU.def_data,
        HA = pf.ha,
        HUName = defHU.def_data,
        SDate = p.sdate,
        PDate = p.pdate,
        StartDate = p.start_date,
        EndDate = p. end_date,
        Flag = 1
    }).ToList();

Я попытался запросить 10000 записей, и мне потребовалось приблизительно 8,5 с, чтобы завершить, в то время как я удалил все 1 с. DefaultIfEmpty(),

Интересно, что DefaultIfEmpty() на самом деле Кроме того, есть ли решение для моего случая?

0 ответов

Другие вопросы по тегам