LinqToSQL4

Join和GroupJoin的区别

List<Atable> ainfo = new List<Atable>
            {
                new Atable{ AId=1, AName="A1", AAge="11" },
                new Atable{  AId=2, AName="A2", AAge="12"},
                new Atable{ AId=3, AName="A3",AAge="13"}
            };
            List<Btable> binfo = new List<Btable>()
            {
                new Btable{ BId=1, BName="B1", BAge="81" },
                new Btable{  BId=3, BName="B3", BAge="83"},
                new Btable{ BId=5, BName="B5",BAge="85"}
             };

Join

官方释义:基于匹配键对两个序列的元素进行关联。使用默认的相等比较器对键进行比较。

这个与数据库中的INNER JOIN很类似,就是使用一个键(TKey)将两个集合关联起来,并对这两个集合的元素进行选择,作为结果输出。

            var info = ainfo.Join(binfo, //需要连接的数据源
             a => a.AId,
             b => b.BId,
               (a, b) => new { a.AName, b.BName }); //获取自己定义类型的集合。
            foreach (var item in info)
            {
                Console.WriteLine(item.AName + item.BName);
            }

GroupJoin

官方释义: 基于键相等对两个序列的元素进行关联并对结果进行分组。使用默认的相等比较器对键进行比较。

这个与数据库的LEFT OUTER JOIN很类似。与Join的区别就是:GroupJoin内resultSelector的输入参数从TInner单个元素编程IEnumerable<TInner>元素集合,其他保持不变。用法与Join差不多,它也是基于TOuter.TKey及TInner.TKey的连接。

 var info = ainfo.GroupJoin(binfo,   //需要连接的数据源
                Atable => Atable.AId,      //通过AId指定数据源
                Btable => Btable.BId,      //通过BId指定数据源
                (a, b) => new
                {
                    a.AName,
                    binfos = b
                }//创建结果相同的数据
               ).ToList();

            foreach (var item in info)
            {
                foreach (var b in item.binfos)
                {
                    Console.WriteLine(item.AName + "\t" + b.BName);
                }

            }

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/jxl123456/p/11114078.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LINQ to SQL 是一种使用 C# 语言中的 LINQ(语言集成查询)功能来访问关系数据库的技术。通过 LINQ to SQL,您可以使用 LINQ 查询语句来查询和操作数据库中的数据。LINQ to SQL 还提供了一种方便的方式来映射数据库表格到 C# 中的类对象,使得您可以使用面向对象的方式来处理数据库中的数据。 在使用 LINQ to SQL 时,您需要先创建一个 DataContext 对象,该对象表示与数据库的连接。然后,您可以使用 LINQ 查询语句来查询和操作数据库中的数据。例如,以下代码演示如何查询一个名为 "Customers" 的表格中所有客户的信息: ```csharp using System.Linq; // 创建 DataContext 对象 DataClasses1DataContext db = new DataClasses1DataContext(); // 查询所有客户信息 var customers = from c in db.Customers select c; // 遍历查询结果 foreach (var customer in customers) { Console.WriteLine("Customer: {0} {1}", customer.FirstName, customer.LastName); } ``` 此外,您还可以使用 LINQ to SQL 来执行插入、更新和删除等数据库操作。例如,以下代码演示如何向 "Customers" 表格中插入一条新的客户记录: ```csharp // 创建新的客户对象 Customer newCustomer = new Customer { FirstName = "John", LastName = "Doe", Email = "johndoe@example.com" }; // 将新客户对象添加到 DataContext 中 db.Customers.InsertOnSubmit(newCustomer); // 提交更改到数据库 db.SubmitChanges(); ``` 以上代码中,InsertOnSubmit() 方法将新客户对象添加到 DataContext 中,而 SubmitChanges() 方法将更改提交到数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值