注意:如果是外链接,是将join后面的表into到一个新的表里,而不是将join的结果集放在新的表里。因此新的临时表有可能为空,用用DefaultIfEmpty取得,其中的每一行也要判断是否为空。(==null)
1、左连接:
var LeftJoin = from emp in ListOfEmployees
join dept in ListOfDepartment
on emp.DeptID equals dept.ID into JoinedEmpDept
from dept in JoinedEmpDept.DefaultIfEmpty()
select new
{
EmployeeName = emp.Name,
DepartmentName = dept != null ? dept.Name : null
};
2、右连接:
var RightJoin = from dept in ListOfDepartment
join employee in ListOfEmployees
on dept.ID equals employee.DeptID into joinDeptEmp
from employee in joinDeptEmp.DefaultIfEmpty()
select new
{
EmployeeName = employee != null ? employee.Name : null,
DepartmentName = dept.Name
};
3、内连接:
var query = from t in entitiy.TB_GCGL_ADA_USER
join p in entitiy.TB_GCGL_ZY_ZYK
on t.ETPRS_CODE equals p.ETPRS_CODE
select new TB_USER_ZYK
{
USER_ID = t.USER_ID,
USER_NAME = t.USER_NAME,
USER_PASSWORD = t.USER_PASSWORD,
};
Createtable Student(
ID intidentity(1,1) primarykey,
[Name]nvarchar(50) notnull
)
CreateTable Book(
ID intidentity(1,1) primarykey,
[Name]nvarchar(50)notnull,
StudentID intnotnull
)
insertinto Student values('张三')
insertinto Student values('李四')
insertinto Student values('王五')
select*from student
--张三借的书
insertinto Book values('红楼',1)
insertinto Book values('大话红楼',1)
--李四借的书
insertinto Book values('三国',2)
--王五没借书
--一本错误的记录
insertinto Book values('错误时怎样练成的',111)
--左连接
select s.name,b.name from student as s
leftjoin Book as b on s.id=b.studentid
--右连接
select s.name,b.name from student as s
rightjoin Book as b on s.id=b.studentid
要用Linq实现左连接,写法如下
var leftJoinSql = from student in db.Student
join book in db.Book on student.ID equals book.StudentID into temp
from tt in temp.DefaultIfEmpty()
select new
{
sname= student.Name,
bname = tt==null?"":tt.Name//这里主要第二个集合有可能为空。需要判断
};
用Linq实现右连接,写法如下
var rightJoinSql = from book in db.Book
join stu in db.Student on book.StudentID equals stu.ID into joinTemp
from tmp in joinTemp.DefaultIfEmpty()
select new {
sname=tmp==null?"":tmp.Name,
bname=book.Name
};
相关推荐
实体层采用linq to sql,客户端winform实现增删查功能,服务端用WCF框架,适用于WCF学习数据库开发。 有问题可以留言 http://blog.csdn.net/quan278905570
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
通过linq进行数据库链接,并能对数据库进行增删改和查询
内附学习推荐网站。 一个是语言集成查询.pdf,内容简介如下: ...包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
微软的Linq to SQL只支持Sql Server,这里是用DbLinq 生成MySql的Linq to SQL实例。做了个bat文件,一键搞定。具体运用有详细说明和调用文件。
资源名称:LINQ编程技术内幕资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
本文摘抄自Microsoft的MSDN网站,因为原文不方便快速阅读和学习,故此调整如下。本文所有权利归Microsoft公司所有。如果您觉得本文侵犯了您的著作权,请来信...所有的代码运行结果请点击代码上的链接,到MSDN网站去看。
安临清AnLinq 是一个 Python 模块,它提供类似于用于列表推导式的 .NET LINQ 链接方法的功能。 当前项目状态: 代码:就绪并兼容 2.x 和 3.x python 版本测试: 80% 覆盖参考:适用于所有方法的有意义的 reST 文档...
NULL 博文链接:https://20444465.iteye.com/blog/1124898
围棋 强大的Go语言集成查询(LINQ)库。 用香草Go语言编写,没有依赖项! 使用迭代器模式完成延迟评估 可同时使用 支持通用功能,使您的代码更...使用就像链接方法一样简单: From(slice) .Where(predicate) .Selec
1、特别注意:如果下载打不发现链接失效的,请先用压缩文件进行压缩,然后再压缩文件中打开,即可阅读 2、中文版帮助文档 3、本资料是由Taven整理的,感觉非常棒,分享给大家,喜欢大家喜欢。
Linq 的语法使用示例如下文章(Lambda表达式): C#连接数据库 —— (二)Linq To EF 的 lambda表达式使用 ,增删查改、判断、分组、排序 实体框架(EF)的创建 选择数据模型项目,并取名添加: 原创文章 64获赞 ...
主要是C# 数据库操作基础内容,linq to sql ORM框架以及EF体系结构,内容里有一些附件不能一并上传,不过有问题可以自己动手搜索单个理解也许更有成效。本人推荐C#链接数据库使用EF模型即可。需要帮助可以添加群 ,...
跨数据库/链接服务器查询。 全文搜索扩展 许多扩展涵盖了ANSI SQL 如何使用 在您的代码中,您需要使用以下调用来初始化集成: LinqToDBForEFTools . Initialize (); 之后,您只需调用LINQ To DB提供的DbContext和...
此文档为简单的C#高级编程示例,主要设计Linq to sql 的链接,很适合初学者查看
LINQ-Async允许您链接异步任务并使用流畅的API命令异步谓词。 特征 OrderByPredicateCompletion 同时启动Predicate OrderByCompletion 选择结果 下载 PM> Install-Package Z.Linq.Async LINQ异步扩展 问题 您要...
NULL 博文链接:https://rednaxelafx.iteye.com/blog/247270