LIQN join on 后跟多个条件
sql 版:SELECT [t0].[OrderID], [t0].[CustomerID], [t0].[EmployeeID], [t0].[OrderDate], [t0].[RequiredDate], [t0].[ShippedDate], [t0].[ShipVia], [t0].[Freight], [t0].[ShipName], [t0].[ShipAddress], [t0].[ShipCity], [t0].[ShipRegion], [t0].[ShipPostalCode], [t0].[ShipCountry]
FROM [Orders] AS [t0]
INNER JOIN [Order Details] AS [t1] ON ([t0].[OrderID] = [t1].[OrderID]) AND ([t0].[OrderID] = [t1].[OrderID])
WHERE ([t0].[OrderID] > @p0) AND ([t0].[EmployeeID] = @p1)
LINQ版:from o in Orders join od in OrderDetails on new {oid= o.OrderID,oeid=o.OrderID} equals new {oid=od.OrderID,oeid=od.OrderID }
where o.OrderID>1000 && o.EmployeeID==5
select o
lambda表达式版:
Orders
.Join (
OrderDetails,
o =>
new
{
oid = o.OrderID,
oeid = o.OrderID
},
od =>
new
{
oid = od.OrderID,
oeid = od.OrderID
},
(o, od) =>
new
{
o = o,
od = od
}
)
.Where (temp0 => ((temp0.o.OrderID > 1000) && (temp0.o.EmployeeID == (Int32?)5)))
.Select (temp0 => temp0.o)
.Join (
OrderDetails,
o =>
new
{
oid = o.OrderID,
oeid = o.OrderID
},
od =>
new
{
oid = od.OrderID,
oeid = od.OrderID
},
(o, od) =>
new
{
o = o,
od = od
}
)
.Where (temp0 => ((temp0.o.OrderID > 1000) && (temp0.o.EmployeeID == (Int32?)5)))
.Select (temp0 => temp0.o)
分类:
Linq
, EntityFramework
标签:
linq join 多条件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通