Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 如何获取条件包含子实体及其相关实体_Linq_Entity - Fatal编程技术网

Linq 如何获取条件包含子实体及其相关实体

Linq 如何获取条件包含子实体及其相关实体,linq,entity,Linq,Entity,以下代码适用于我: var query0 = DB.Plan .Include("UserCreate") .Include("UserUpdate") .Include("PlanTemplate") .Select(p => new { plan = p, planItems = p.PlanItems.Where(pi => pi.IsCommited ==

以下代码适用于我:

var query0 = DB.Plan
    .Include("UserCreate")
    .Include("UserUpdate")
    .Include("PlanTemplate")
    .Select(p => new
            {
                plan = p,
                planItems = p.PlanItems.Where(pi => pi.IsCommited == true && pi.IsLocked ==    false)
            });
var query2 = query0.AsEnumerable().Where(m => m.planItems.Count() > 0).Select(m => m.plan);
var query0 = DB.WorkEffortPlan
.Include("UserCreate")
.Include("UserUpdate")
.Include("PlanTemplate")
.Select(p => new
{
    plan=p,
    planItems = DB.PlanItem
    .Include("UserResponsiblePerson")
    .Include("TemplateItem")
    .Include("ItemState")
    .Where(pi => pi.PlanID == p.PlanID && pi.IsCommited == true && pi.IsLocked == false)
});
var query2 = query0.AsEnumerable().Where(m => m.planItems.Count() > 0).Select(m => m.plan);
但planItems与我想要的其他实体相关,以下代码不适用于我:

var query0 = DB.Plan
    .Include("UserCreate")
    .Include("UserUpdate")
    .Include("PlanTemplate")
    .Select(p => new
            {
                plan = p,
                planItems = p.PlanItems.Where(pi => pi.IsCommited == true && pi.IsLocked ==    false)
            });
var query2 = query0.AsEnumerable().Where(m => m.planItems.Count() > 0).Select(m => m.plan);
var query0 = DB.WorkEffortPlan
.Include("UserCreate")
.Include("UserUpdate")
.Include("PlanTemplate")
.Select(p => new
{
    plan=p,
    planItems = DB.PlanItem
    .Include("UserResponsiblePerson")
    .Include("TemplateItem")
    .Include("ItemState")
    .Where(pi => pi.PlanID == p.PlanID && pi.IsCommited == true && pi.IsLocked == false)
});
var query2 = query0.AsEnumerable().Where(m => m.planItems.Count() > 0).Select(m => m.plan);
vs编译器运行正常,但当执行此代码时,我在query0中得到NullReferenceException

是否有任何linq解决方案来获取过滤子实体及其相关实体