我的工作是使用 LINQ 聚合存在于 2 个不同数据库中的公司员工,标准是找到同名的公司,然后在这些公司中找到同名的部门,然后将所有员工合并到一个新的公司对象中。
我将两个数据库中的所有公司合二为一List<Company>
,他们是否可以使用该Aggregate
功能合并具有相同名称的公司,然后找到具有相同名称的部门并合并其所有员工?使用聚合函数似乎很容易合并“1 级”数据,我正在努力进入 3 级聚合(公司>部门>员工)
List<Company> AllCompanies
我的对象示例:
Company Department Employees Source
-----------|--------------|-------------|---------
ABC Inc | Sales | Sam | DB1
| | Laura |
-----------|--------------|-------------|---------
ABC Inc | Sales | Joe | DB2
-----------|--------------|-------------|---------
ABC Inc | Sales | Joe | DB1
-----------|--------------|-------------|---------
ABC Inc | IT | Matt | DB2
-----------|--------------|-------------|---------
XYZ Inc | Sales | Steve | DB1
-----------|--------------|-------------|---------
XYZ Inc | Sales | Steve | DB2
-----------|--------------|-------------|---------
XYZ Inc | HR | Mark | DB2
我正在尝试将以上内容转换为:
Company Department Employees
-----------|--------------|-------------
ABC Inc | Sales | Sam
| | Laura
| | Joe
|--------------|-------------
| IT | Matt
-----------|--------------|-------------
XYZ Inc | Sales | Steve
|--------------|-------------
| HR | Mark
为了这个例子,我的匹配标准只是名称。