Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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# SelectMany()无法推断类型参数--为什么不能?_C#_Entity Framework_Linq - Fatal编程技术网

C# SelectMany()无法推断类型参数--为什么不能?

C# SelectMany()无法推断类型参数--为什么不能?,c#,entity-framework,linq,C#,Entity Framework,Linq,我有一张Employee表和一张Office表。通过EmployeeOffices表以多对多的关系连接这些办公室 我想获得一个特定员工(CurrentEmployee)所关联的所有办公室的列表 我想我可以这样做: foreach (var office in CurrentEmployee.EmployeeOffices.SelectMany(eo => eo.Office)) ; 但这给了我一个错误: 无法从用法推断方法“System.Linq.Enumerable.Selec

我有一张
Employee
表和一张
Office
表。通过
EmployeeOffices
表以多对多的关系连接这些办公室

我想获得一个特定员工(
CurrentEmployee
)所关联的所有办公室的列表

我想我可以这样做:

foreach (var office in CurrentEmployee.EmployeeOffices.SelectMany(eo => eo.Office))
    ;
但这给了我一个错误:

无法从用法推断方法“System.Linq.Enumerable.SelectMany(System.Collections.Generic.IEnumerable,System.Func>)”的类型参数。尝试显式指定类型参数


我知道我可以添加类型参数。但Intellisense认识到,
eo.Office
属于Office类型。那么为什么编译器不清楚这一点呢?

传递给
SelectMany
的委托返回的类型必须是
IEnumerable
,但显然,
Office
没有实现该接口。看起来您只是混淆了简单的
Select
方法的
SelectMany

  • 用于将多个集合展平为一个新集合
  • 用于将源集中的每个元素一对一映射到新的集合
我想这就是你想要的:

foreach (var office in CurrentEmployee.EmployeeOffices.Select(eo => eo.Office))

不要!你说得对。
员工办公室
办公室
是一对一的关系。我对多对多的关系感到困惑。谢谢