【问题标题】:Populate data in C# entity from different tables从不同的表中填充 C# 实体中的数据
【发布时间】:2017-02-14 15:57:55
【问题描述】:

我有三张桌子:

汽车

零件

子部件

现在我想从所有三个表中获取数据,这很容易通过执行内部连接我可以轻松获得。我的 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 有什么可以做的(更可取)。

【问题讨论】:

  • 有什么原因不能使用实体框架吗?
  • 如果你能包含这些类会很有帮助,特别是你使用什么样的类型来收集......
  • @Jakotheshadows :是的,因为我正在处理一个旧项目及其企业库

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


【解决方案1】:

使用来自 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
    };

【讨论】:

  • 我想将存储过程中的数据填充到我各自的实体中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多