Объект передачи данных (DTO) в DisplayObject (DO) - как сгладить DTO в свойство коллекции DO

Я хотел бы сгладить коллекцию DTO в один DO с помощью LINQ, но мой 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)

Продукт, Местоположение и Месяц все наследуются от 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
}

Я могу получить список DTO просто отлично используя NHibernate, но у меня возникают проблемы со сглаживанием их в моем DO. Я хотел бы использовать LINQ для создания DO. Что мне нужно сделать, чтобы получить набор DO, привязанных к Product и Location со списком объектов DataValue, содержащих данные по месяцам?

Другими словами ...

Вот пример набора исходных данных:

Product:             Location:            Month:              Data:
ProductA             MI                   Jan                 10
ProductA             MI                   Feb                 20
ProductA             MI                   Mar                 30
ProductB             CA                   Jan                 100
ProductB             CA                   Feb                 200
ProductC             CA                   Mar                 300

Я могу просто сопоставить это с DTO. Теперь я хотел бы использовать LINQ для получения 2 экземпляров DO, каждый из которых имеет список, содержащий 3 экземпляра DataValue.

1
задан Brett Veenstra 30 April 2012 в 14:22
поделиться