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
C# 实体框架。有限包含查询_C#_Linq_Entity Framework - Fatal编程技术网

C# 实体框架。有限包含查询

C# 实体框架。有限包含查询,c#,linq,entity-framework,C#,Linq,Entity Framework,我有一个对象客户,与访问有一对多关系。 访问具有特定的访问类型 我只想在某个日期后获取访问量,这适用于我的所有客户。因此,我传递参数referenceDate 我能想到的Linq查询将为我提供所需的结果: customers.Include(c => c.Visits.Where(v => v.VisitDate >= referenceDate)).ToList(); 当然,这不起作用,因为Include实际上需要一个路径 这个问题是否有Linq替代方案,或者我是否应该为此

我有一个对象
客户
,与
访问
一对多
关系。 访问具有特定的
访问类型

我只想在某个日期后获取
访问量
,这适用于我的所有
客户
。因此,我传递参数
referenceDate

我能想到的Linq查询将为我提供所需的结果:

customers.Include(c => c.Visits.Where(v => v.VisitDate >= referenceDate)).ToList();
当然,这不起作用,因为
Include
实际上需要一个路径


这个问题是否有Linq替代方案,或者我是否应该为此编写自定义查询?

也许您需要这样的东西:

customers.Include(c => c.Visits).Where(c => c.Visits.VisitDate >= referenceDate)).ToList();


客户。包括(“访问”)。其中(c=>c.Visits.VisitDate>=referenceDate)).ToList()

这可能是重复的,这不是一个好的解决方案。执行.Select(x=>x.b)时发生以下错误:符号类型“Devart.Common.Entity.ae”和当前表达式“Devart.Common.Entity.ae”的列添加失败。我的对象上有导致这些问题的其他属性。
customers.Select(c=>new{c,Visits=c.Visits.Where(v=>v.VisitDate>=referenceDate)}.AsEnumerable().Select(a=>a.c).ToList()
这将排除没有访问的客户。啊,好的。。。像这样的?包括(c=>c.Visits)。其中(c=>c.Visits.VisitDate>=referenceDate | | c=>c.Visits==null | | c.Visits.Count==0)).ToList();我现在不在我的开发机器上,所以代码没有经过测试;)另外,我非常确定访问不必检查null和count=0。其中一个应该足够了…这仍然包括我所有的访问,这是对客户的筛选