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# 如何将.Where()条件与.Include()一起使用?_C#_Linq_.net 4.0 - Fatal编程技术网

C# 如何将.Where()条件与.Include()一起使用?

C# 如何将.Where()条件与.Include()一起使用?,c#,linq,.net-4.0,C#,Linq,.net 4.0,这应该是直截了当的,但我没有在这个问题上取得任何进展。我想写一个LINQ语句,它返回一个匹配给定ID的人,并包含一组访问。我能做到。现在,我只需要包括活动访问,也就是说,仅当IsActive标志为true时才包括访问。我的问题包括在下面。我做错了什么 var inmate = this.db.Inmates.Where(p => p.Id == id).Include(p => p.Visits.Where(v => v.IsActive)).FirstOrDefault();

这应该是直截了当的,但我没有在这个问题上取得任何进展。我想写一个LINQ语句,它返回一个匹配给定ID的人,并包含一组访问。我能做到。现在,我只需要包括活动访问,也就是说,仅当IsActive标志为true时才包括访问。我的问题包括在下面。我做错了什么

var inmate = this.db.Inmates.Where(p => p.Id == id).Include(p => p.Visits.Where(v => v.IsActive)).FirstOrDefault();
更新#1-我也尝试过这句话:

var inmate = this.db.Inmates.Include(p => p.Visits).Where(p => p.Id == id && p.Visits.Any(v => v.IsActive)).FirstOrDefault();
试试这个:

var inmate = this.db.Inmates.Where(i => i.Visits.Any(x => x.IsActive))

注意:代码假定
IEnumerable
囚犯
对象的属性。

你看到这个问题了吗?我相信你正在尝试在访问inmateObject时进行有条件的即时加载。访问你只需要活动访问列表。这已经在这里讨论过了@我同意。我真的不认为有任何方法可以做到这一点,除了他们在你的链接建议。