У меня есть два вида настройки SQL:
- PurchaseOrder
- PurchaseOrderLineItems
У них много псевдонимов столбцов (таблицы, которые они просматривают / объединяют, не имеют разумного названия ... это сторонний продукт)
У меня есть 2 класса (упрощенно ниже)
class PurchaseOrder
{
public string PoNumber { get; set; }
public string Vendor { get; set; }
public DateTime DateCreated { get; set; }
public IEnumerable<PurchaseOrderLineItems> LineItems { get; set; }
}
и
class PurchaseOrderLineItems
{
public string PoNumber { get; set; }
public string Name { get; set; }
public double Price { get; set; }
}
Я использую Linq to Sql - с файлом сопоставления XML (создан с помощью sqlmetal.exe)
Что я хочу сделать, так это эффективно заполнить IEnumerable в PurchaseOrder записями из представления PurchaseOrderLineItem - эффективно объединяя таблицы
Я хотел сделать это, используя POCO - без необходимости добавлять EntitySet <> в мой класс, так как в конце концов я заменил свой ORM на что-то вроде nHibernate (с атрибутом bag, который я считаю ...?)
В настоящее время у меня есть хранимая процедура - sp_getPurchaseOrderLineItems, которая принимает PONumber, а затем возвращает список объектов PurchaseOrderLineItem, которые я затем добавляю в свой набор результатов (это далеко, далеко от идеала)
есть ли способ сделать то, что мне нужно? Так что, по сути, запрос на PurchaseOrder возвращает уже заполненный IEnumerable из LineItems в экземпляре?
Стоит отметить, что это будет только для чтения, мы никогда не будем вставлять / обновлять данные, используя это.