【发布时间】:2015-07-26 11:25:43
【问题描述】:
我将不胜感激有关以下 SQL 查询(有效)的 LINQ 等效项的帮助。在这个 SQL 查询下面,我对我的简单数据库和我想要解决的问题进行了一些描述。
Select a.Name, a.OrderID,
b.ProductIDFirst, c1.productName ProductNameFirst,
b.ProductIDSecond , c2.productName ProductNameSecond
from Customers a
INNER JOIN ORDERS b ON a.OrderID = b.OrderID
left join products c1 on b.productidfirst = c1.productid
left join products c2 on b.ProductIDSecond = c2.productid
数据库结构背景资料: 我有一个简单的 SQL Server 数据库,其中包含三个名为 Products、Orders 和 Customers 的表。 商业模式是这样的,每个订单只能有两种产品(不能更多)。 Orders 表有两个外键,尽管它们都来自 Products 表。 Orders 表中的这些外键字段名称是 ProductIDFirst 和 ProductIDSecond。订单表中的这两个外键对应每个订单可以拥有的两个产品。客户表有一个来自订单表的外键。
现在我需要 LINQ 查询方面的帮助,该查询将返回所有客户,以便我获得五个字段 - CustomerName、OrderID 和与客户产品中的 OrderID 匹配的两种产品中的每一种的名称。
【问题讨论】:
-
请显示一个类模型,以便导航属性和关联的多样性可见。此外,请说明您的目标是什么类型的 LINQ(针对实体?),和展示您自己的初步努力。他们向我们解释的内容比您想象的要多。