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);
} }
LinqToSQL4的更多相关文章
随机推荐
- java课后实验性问题4
课后作业一: 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象? 设计思路:定义类的构造函数时使静态变量i进行i++,即每构 ...
- QT 自定义消息
#define TEST_EVENT QEvent::User + 100 class CVxActuatorMain : public QMainWindow { protected: ...
- Django 配置实用bootstrap
1.下载bootstrap代码包. 2.在目录下创建static文件夹,将bootstrap文件夹移动到static文件夹内,编辑settings.py: 最后添加如下(文件末尾): STATIC_U ...
- pip 安装报错
pip3 install uwsgi 报错 Command in /tmp/pip-build-5m77h_mm/uwsgi/ yum -y install python36-devel 解决
- [Java读书笔记] Effective Java(Third Edition) 第 7 章 Lambda和Stream
在Java 8中,添加了函数式接口(functional interface),Lambda表达式和方法引用(method reference),使得创建函数对象(function object)变得 ...
- set serveroutput on
使用set serveroutput on 命令设置环境变量serveroutput为打开状态,从而使得pl/sql程序能够在SQL*plus中输出结果 使用函数dbms_output.put_lin ...
- C++ unique
#include <iostream>#include <algorithm>#include <list>#include <iterator>#in ...
- JavaScript 运行机制:Event事件循环机制
JavaScript Event事件循环机制 JS是单线程的,浏览器只分配一个主线程给JS.一次只能执行一个任务,当前任务执行完后在可以执行下一个任务.任务多时,就会形成任务队列排队等待执行.但是非常 ...
- MVP模式的学习
简书: http://www.jianshu.com/p/f6fd9656f619 Github: https://github.com/tsaievan/YFMVPDemo
- lnmp搭建-手动版
参照链接:http://blog.csdn.net/bravemelon/article/details/64925499 centOS 下安装 Nginx yum -y groupinstall & ...