私は、LINQを使用して2つの異なるデータベースに存在する企業の従業員を集約する仕事をしています。基準は、同じ名前の会社を見つけ、これらの会社の同じ名前の部門も見つけて、すべての従業員を新しい会社オブジェクトにマージすることです。
2 つのデータベースのすべての会社を 1 つList<Company>
にまとめましたが、関数を使用Aggregate
して同じ名前の会社をマージし、同じ名前の部門を見つけてすべての従業員をマージする方法はありますか? 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
この例のために、私の一致基準は名前のみです。