Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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

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,假设我有以下域(不是我的实际域,而是一个简单的示例) 这样做会给我带来错误 无法将lambda表达式转换为类型“string”,因为它不是委托类型 (显然对颜色不满意,这里需要一种方法 所以我把它改成这个作为实验 var efClasses = (from d in myentity.ClassRoom where ( (d.Desks.Where(x=>x.Colour == "blue")) || (

假设我有以下域(不是我的实际域,而是一个简单的示例)

这样做会给我带来错误

无法将lambda表达式转换为类型“string”,因为它不是委托类型 (显然对颜色不满意,这里需要一种方法

所以我把它改成这个作为实验

var efClasses = (from d in myentity.ClassRoom
                  where ( (d.Desks.Where(x=>x.Colour == "blue"))
                         || (d.LunchBoxs.Where(x=>x.Colour == "green)) )
select d).Distinct();
但这也不会编译(事后看来,我有一种感觉,在这件事上我在碰碰运气


我可以反过来,将我的from改为myentity.Desks和myentity.午餐盒,并返回两个单独的教室列表,然后找到工会,但这需要两个单独的DB点击,并且感觉像这样使用Count>0

 var efClasses = (from d in myentity.ClassRoom
                             where (d.Desks.Count(x => x.Colour == "blue") > 0
                                    || d.LunchBoxs.Count(x => x.Colour == "green") > 0)
                             select d);

像这样使用Count>0

 var efClasses = (from d in myentity.ClassRoom
                             where (d.Desks.Count(x => x.Colour == "blue") > 0
                                    || d.LunchBoxs.Count(x => x.Colour == "green") > 0)
                             select d);

像这样使用Count>0

 var efClasses = (from d in myentity.ClassRoom
                             where (d.Desks.Count(x => x.Colour == "blue") > 0
                                    || d.LunchBoxs.Count(x => x.Colour == "green") > 0)
                             select d);

像这样使用Count>0

 var efClasses = (from d in myentity.ClassRoom
                             where (d.Desks.Count(x => x.Colour == "blue") > 0
                                    || d.LunchBoxs.Count(x => x.Colour == "green") > 0)
                             select d);

您可以使用任何

var efClasses = (from d in myentity.ClassRoom
                 where (d.Desks.Any(x => x.Colour == "blue") ||
                        d.LunchBoxs.Any(x => x.Colour == "green"))
                 select d);

您可以使用任何

var efClasses = (from d in myentity.ClassRoom
                 where (d.Desks.Any(x => x.Colour == "blue") ||
                        d.LunchBoxs.Any(x => x.Colour == "green"))
                 select d);

您可以使用任何

var efClasses = (from d in myentity.ClassRoom
                 where (d.Desks.Any(x => x.Colour == "blue") ||
                        d.LunchBoxs.Any(x => x.Colour == "green"))
                 select d);

您可以使用任何

var efClasses = (from d in myentity.ClassRoom
                 where (d.Desks.Any(x => x.Colour == "blue") ||
                        d.LunchBoxs.Any(x => x.Colour == "green"))
                 select d);