繁体   English   中英

如何使用扩展在 Linq Lambda 中编写此 SQL

[英]How to write this SQL in Linq Lambda using extensions

我一直在尝试将我拥有的这个 SQL 转换为 lambda 表达式。 但是,我现在花了太多时间试图解决它,希望你们能向我解释一个解决方案。

SELECT *
FROM Products
INNER JOIN Details on Products.ID = Details.ID
INNER JOIN Orders ON Details.ID = Orders.ID

尝试:

db.Products.Include(x => x.Details)
           .Include("Details.Orders");

尝试使用Join方法也无济于事。 它需要作为Iqueryable返回。 我认为使用 include 会简化连接过程,但它似乎更复杂。 无论我在Include哪些表,似乎都无法获得Orders

如果您使用的是 EF,则可以执行以下操作:

db.Products.Include(x => x.Details)
           .Include(x => x.Details.Orders);

否则,使用 LINQ to SQL,您可以将 SQL 翻译为:

from p in db.Products
join d in db.Details on p.ID equals d.ID
join o in db.Orders on d.ID equals o.ID
select new { p, d, o};

这转化为 lambda 语法为:

db.Products.Join(db.Details, p => p.ID, d => d.ID, (p,d) => new { p, d })
           .Join(db.Orders, d => d.ID, o => o.ID, (pd, o) => new { pd.p, pd.d, o });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM