gpt4 book ai didi

Linq 多个连接在同一张表上

转载 作者:行者123 更新时间:2023-12-02 22:01:58 25 4
gpt4 key购买 nike

如何在 linq 中编写此查询?

select * from bills as b inner join customer as c1
On b.shipperID=c1.CustomerID inner join customer c2
On b.ConsigneeID=c2.CustomerID
---------------------------

我需要如下:

var result=from p1 in entities.bills
join p2 in entities.customer on p1.shipperID equals p2.customerID
join p3 in entities.customer on p1.consigneeID equals p3.customerID
select p2;
return resuls.Tolist()

谢谢:)

最佳答案

在您的 SQL 中,您选择了所有对象,因此在 linq 中,您需要将所有对象放入新的匿名类型中,如下所示。

var result = from p1 in entities.bills
join p2 in entities.customer on p1.shipperID equals p2.customerID
join p3 in entities.customer on p1.consigneeID equals p3.customerID
select new
{
Bills = p1,
Shippers = p2,
Consignees = p3
};

return resuls.Tolist();

或者,如果您需要将它们展平,则必须逐个属性地投影它们。

你应该在 LINQ 中使用导航属性,比如

from bills in entities.bills
select new
{
bills.Shipper
bills.Consignee
};

关于Linq 多个连接在同一张表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16799657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com