2017-02-14 13 views
0

Я три таблицы:заселить данные в C# объекта из разных таблиц

автомобилей

enter image description here

Parts

enter image description here

подразделов

enter image description here

Теперь я хочу, чтобы получить данные из всех трех таблиц, что легко выполняя внутреннее соединение можно легко получить, что. Мой SQL запрос

Select C.Id AS CarId,C.Name AS CarName 
, P.Id AS PartsId,P.Name AS PartsName 
, SP.Id AS SubPartsId,SP.Name AS SubPartsName 
from Car C 
INNER JOIN Parts P on C.Id=P.CarId 
INNER JOIN SubParts SP on P.Id=SP.PartsId 

В C# Я же объекты с теми же свойствами, что и столбцов таблицы и тем же именем, что таблицы, теперь я хочу, чтобы заполнить данные из одного запроса в трех различных объектов без повторения каждой записи, возвращенной из SQL-запроса. Есть ли что-то, что можно сделать при использовании ADO.NET или Enterprise Library (более предпочтительно).

+0

Есть ли причина, по которой вы не можете использовать сущность framework? – Jakotheshadows

+0

Это очень помогло бы, если бы вы могли включить классы, в частности, какие типы вы используете для коллекции ... – Svek

+0

@Jakotheshadows: Да, поскольку я работаю над старым проектом, его на корпоративной библиотеке –

ответ

0

Используйте join от LINQ.

var innerJoinQuery = 
    from car in cars 
    join part in parts on car.Id equals part.CarId 
    join subPart in subParts on part.Id equals subPart.PartId 
    select new { 
     CarId = car.Id, 
     CarName = car.Name, 
     PartsId = part.Id, 
     PartsName = part.Name, 
     SubPartsId = subPart.Id, 
     SubPartsName = subPart.Name 
    }; 
+0

Я хочу для заполнения данных из хранимой процедуры в мои соответствующие объекты. –

 Смежные вопросы

  • Нет связанных вопросов^_^