现在的位置: 首页 > 综合 > 正文

linq to sql 学习(2) 简介

2013年03月14日 ⁄ 综合 ⁄ 共 1395字 ⁄ 字号 评论关闭

在这里我们将主要介绍下 LINQ  TO  SQL ,可能好多人还不了解LINQ to SQL,没有关系,我们一点点的从简单的例子,去了解和学习它,最后在我们工作中去应用它,会发现到其实它也有很多好处。呵呵。。

先从整体的介绍LINQ

一、LINQ的概念:
LINQ是Language Integrated Query(语言集成查询)的简称,它是集成在.NET编程语言中的一种特性,这使得查询表达式可以得到很好的编译时语法检查,丰富的元数据,智能感知等强类型语言的好处LINQ 是 Visual Studio 2008 和 .NET Framework 3.5 版中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。

二、LINQ出现的背景:
传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。此外,您还必须针对以下各种数据源学习不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。LINQ 使查询成为 C# 和 Visual Basic 中的一等语言构造。您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。在 Visual Studio 中,可以用 Visual Basic 或 C# 为以下各种数据源编写 LINQ 查询:SQL Server 数据库、XML 文档、ADO.NET 数据集以及支持 IEnumerable 或泛型 IEnumerable) 接口的任意对象集合。此外,还计划了对 ADO.NET Entity Framework 的 LINQ 支持,并且第三方为许多 Web 服务和其他数据库实现编写了 LINQ 提供程序。

一. LINQ to Objects
只要实现了IEnumerable或IEnumerable接口,就都支持。

二. LINQ to SQL(ADO.NET) 

◆LINQ to DataSet、LINQ to SQL 和 LINQ to Entities。

◆LINQ to DataSet 提供对 DataSet 的更为丰富的优化查询。

◆LINQ to SQL 可以直接查询 SQL Server 数据库架构。

◆LINQ to Entities 可以查询实体数据模型。

三. LINQ to XML

LINQ可以看作对foreach循环的改进:

1.它们更简明、更易读,尤其在筛选多个条件时。

2.它们使用最少的应用程序代码提供强大的筛选、排序和分组功能。

3.无需修改或只需做很小的修改即可将它们移植到其他数据源。通常,您要对数据执行的操作越复杂,您体会到的使用 LINQ 代替传统迭代技术的好处就越多。

四.LINQ to SQL:

1. LINQ要求数据库表必须有主键。

2. 做update操作时,生成的sql语句中where条件中不仅包括主键id=?,而且包括表中各列 and column2=? and   column3=?。。。    这是LINQ自动生成SQL语句的严谨所在,这是为了防止并发情况下,多个事务针对同一条记录更新时发生错误,假如A事务更新了该记录,则B事务更新会失败。

3. update不能更新主键。

4. skip().take()生成的sql实际就是: select count(*) from,    以及 row_num()来实现分页。

5. 效率没有直接使用T-SQL高,感觉适合于中小规模的,数据量不是特别大的开发中。而且其与asp.net中的一些控件的结合使用可能不是很方便。

6. 不如使用T-SQL灵活,尤其是查询比较复杂,多表联接,使用case函数等。

抱歉!评论已关闭.