LIQN join on 后跟多个条件

本文详细对比了SQL查询、LINQ查询以及Lambda表达式的使用方法,通过具体案例展示了从传统SQL查询转换到现代.NET平台上的LINQ及Lambda表达式的全过程,对理解不同查询方式的异同及应用场合有极大帮助。
摘要由CSDN通过智能技术生成

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)

转载于:https://www.cnblogs.com/tiancai/p/5035415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值