LINQ を使用して DTO のコレクションを単一の DO にフラット化したいのですが、私の LINQ-fu は弱いです。
私のDTOは次のようになります。
public class DTO {
Product product,
Location location,
MonthPeriod month,
double Data
}
そして、次のスキーマを使用して SQL データベース テーブルにマップします。
ProductID int,
LocationID int,
MonthPeriodID int,
Data numeric(18,6)
Product、Location、Month はすべて、次のような LookupEntity から継承されます。
public class LookupEntity {
string Name,
int Id
}
次に、次のような DO があります。
public class DO {
Product product,
Location location,
IList<DataValue> values
}
DataValue は、次のような値オブジェクトです。
public class DataValue {
MonthPeriod Month
double Data
}
NHibernate を使用して DTO のリストを取得することはできますが、DO にフラット化するのに問題があります。LINQ を使用して DO を作成したいと考えています。月ごとのデータを含む DataValue オブジェクトのリストを使用して、Product と Location をキーにした DO のコレクションを取得するには、どうすればよいですか?
言い換えると...
ソース データ セットの例を次に示します。
製品: 場所: 月: データ: 製品 A MI 1 月 10 日 ProductA MI 2月20日 製品 A MI 3 月 30 日 製品 B CA 100 年 1 月 製品 B CA 200 年 2 月 製品 C CA 300 年 3 月
それをDTOにうまくマッピングできます。ここで、LINQ を使用して DO の 2 つのインスタンスを取得したいと考えています。各インスタンスには、DataValue の 3 つのインスタンスを含むリストがあります。