注意:如果是外链接,是将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>...
为了解决这个问题,开发者可以借助`System.Linq.dll`这个动态链接库,将LINQ的功能引入到.NET 2.0的环境中。 `System.Linq.dll`是.NET Framework 3.5及以上版本的一部分,它包含了实现LINQ所需的核心类和接口。这个...
通过linq进行数据库链接,并能对数据库进行增删改和查询
此外,“打开方式.htm”可能是关于如何查看和使用这些PDF文档的指南,而“爱书吧-2万本图书免费下载.url”可能是一个链接,指向更多免费的IT图书资源。 通过深入学习和实践Linq,开发者可以提高代码的可读性,减少...
内附学习推荐网站。 一个是语言集成查询.pdf,内容简介如下: ...包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
- `最新Asp.Net源码下载.url`指向一个URL,可能是更多ASP.NET源码的下载链接。 通过这个项目,学习者可以了解到如何在三层架构中使用LINQ,理解如何在业务逻辑层中编写查询,以及如何在数据访问层中使用LINQ与...
"SqlServerQueryVisualizer.dll"是这个工具的核心组件,它是一个动态链接库文件,包含实现可视化查询转换功能的代码。在Visual Studio中,开发者可以通过引用这个组件,将其实现为一个调试插件。在bin\debug文件夹下...
在.NET开发环境中,微软的Linq to SQL是一个强大的工具,它允许开发者使用C#或VB.NET的LINQ(Language Integrated Query)语法与SQL Server数据库进行交互。然而,它并不直接支持MySQL这样的非SQL Server数据库。...
包含指向说明如何使用 LINQ to XML 的主题的链接,此功能可提供文档对象模型 (DOM) 的内存中文档修改 功能,并且支持 LINQ 查询表达式。 9.LINQ to ADO.NET(门户页) 提供 <token>linq_dataset</token> 和 <token>...
通过阅读提供的博客链接(),你可以深入学习更多关于LINQ在VS2008中的具体用法和示例,包括如何在实际项目中应用这些概念。此外,还可以参考微软官方文档和其他在线教程,以进一步提升你的LINQ技能。
使用LINQ,开发者可以轻松地解析RSS feed,提取标题、链接、发布日期等信息,甚至可以创建RSS阅读器应用。 **Reflector工具** Reflector是一款反编译工具,允许开发者查看.NET程序集的内部工作原理,包括查看IL...
资源名称:LINQ编程技术内幕资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
"程序员天空"可能是一个网站或者博客的名称,提供此源码的出处,而提供的链接"www.codersky.net"可能是该资源的在线平台,可能包含更多相关教程和讨论。 **知识点详解** 1. **MVC架构**:MVC模式是一种软件设计...
LINQ(Language Integrated Query...文档末尾提到的“***抱米花”很可能是原作者或文档出处的网站链接,用于感谢原作者或者指出文档的原始出处。由于文档内容被部分OCR处理,某些字可能有误,需要读者自行理解并修正。
- 最新Asp.Net源码下载.url:可能是指向更多ASP.NET源码下载的链接。 - Tool、DAL、Model、DB_51aspx:这些可能是项目中的文件夹,分别存储工具类、数据访问层(DAL)、模型类以及数据库相关的文件。 - Web:可能是...
在提供的文件中,`System.Linq.Dynamic.dll`是包含动态查询库实现的动态链接库文件,可以直接在项目中引用以使用其功能。而`Microsoft Public License (Ms-PL).pdf`则是该库的许可协议,它遵循的是Microsoft Public ...
3. NHibernate.Linq.dll:这是实际的DLL动态链接库文件,包含了NHibernate.Linq的所有实现。在.NET项目中,需要引用这个库才能使用NHibernate.Linq的功能。开发者可以将这个文件添加到项目的引用目录,然后在代码中...
在ASP.NET MVC中,可以创建一个强类型视图,接收`IQueryable`类型的用户集合,并使用`@Html.Pager`辅助方法实现分页链接。 总的来说,`LinQ`在ASP.NET MVC中的应用简化了数据库操作,使得开发者能更专注于业务逻辑...