linq join on 多个关联条件

sqlserver语句:
select * from Table1  join Table2 
on Table1.Col1=Table2.Col1 and Table1.Col2=Table2.Col2
对应linq写法:
一:

var Infos = from a in Table1 join b in Table2 
                on new { a.Col1 , Col2 } equals new {   b.Col1 , b.Col2}
                select new { a.Col1, b.Col2 };
二:

var userInfos = from a in Table1
                from b in Table2
                where a.Col1 == b.Col1 && a.Col2 == b.Col2
                select new { a.Col1, b.Col2 };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LINQ(Language Integrated Query)是.NET框架中的一种查询语言,用于对各种数据源进行查询和操作。在LINQ中,JOIN操作用于将两个或多个数据源中的元素进行关联。CASE WHEN语句是SQL中的条件语句,用于根据不同的条件执行不同的操作。 在LINQ中,JOIN操作可以使用join关键字来实现。JOIN操作可以在两个数据源之间建立关联,并根据指定的条件将它们连接起来。JOIN操作可以用于不同类型的数据源,如集合、数组、数据库表等。 CASE WHEN语句在LINQ中可以使用条件表达式来实现。条件表达式可以根据不同的条件返回不同的结果。在LINQ中,可以使用条件表达式来对查询结果进行筛选、排序或其他操作。 下面是一个示例代码,演示了LINQ中的JOIN操作和CASE WHEN语句的使用: ```csharp var customers = new List<Customer> { new Customer { Id = 1, Name = "John" }, new Customer { Id = 2, Name = "Alice" }, new Customer { Id = 3, Name = "Bob" } }; var orders = new List<Order> { new Order { Id = 1, CustomerId = 1, Product = "Product A" }, new Order { Id = 2, CustomerId = 2, Product = "Product B" }, new Order { Id = 3, CustomerId = 1, Product = "Product C" } }; var result = from c in customers join o in orders on c.Id equals o.CustomerId select new { CustomerName = c.Name, OrderProduct = o.Product, OrderStatus = (o.Id % 2 == 0) ? "Even" : "Odd" }; foreach (var item in result) { Console.WriteLine($"Customer: {item.CustomerName}, Order: {item.OrderProduct}, Status: {item.OrderStatus}"); } ``` 上述代码中,我们定义了两个类Customer和Order,分别表示客户和订单。通过LINQJOIN操作,我们将两个数据源customers和orders关联起来,并使用CASE WHEN语句根据订单的Id判断其奇偶性,将结果存储在result变量中,并进行输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值