从不同的表填充C#实体中的数据

时间:2017-02-14 15:57:55

标签: c# sql ado.net enterprise-library

我有三张桌子:

汽车

enter image description here

零件

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(更优选)。

1 个答案:

答案 0 :(得分:0)

使用LINQ中的join

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
    };