查询表达式(LINQ)简介及VS2008下的使用
2008-10-02 13:07
323 查看
部分内容转自:/article/6948158.html
LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
我们来总体看看LINQ架构
在.NET3.5下,微软为我们提供了一些命名空间
LINQ包括五个部分:LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML。
LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
LINQ to XML在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能等。
VS2008下的使用方法:
数据库使用MS-SQL2008。
新建数据库tutorial,运行以下DDL。
USE [tutorial]
GO
/****** Object: Table [dbo].[User] Script Date: 10/02/2008 13:13:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[User](
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [varchar](50) NOT NULL,
[AGE] [int] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
可自行适当追加一些数据。
打开VS2008,新建tutorial工程。在工程中新建App_Code文件夹,并新增LinQ To SQL类,命名为User.dbml。
在VS2008的视图菜单下选择服务器资源管理器,添加连接并指向上面新建的数据库,把User表拖曳至User.dbml文件上并保存。
打开默认的Default.aspx,添加GridView。后台代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack){
UserDataContext userDC = new UserDataContext();
GridView1.DataSource = from p in userDC.User
where p.AGE > 22
//select new {a = p.NAME};
select p;
GridView1.DataBind();
}
}
}
启动Web服务,页面上就会显示出满足条件的数据。
LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
我们来总体看看LINQ架构
在.NET3.5下,微软为我们提供了一些命名空间
LINQ包括五个部分:LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML。
LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
LINQ to XML在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能等。
VS2008下的使用方法:
数据库使用MS-SQL2008。
新建数据库tutorial,运行以下DDL。
USE [tutorial]
GO
/****** Object: Table [dbo].[User] Script Date: 10/02/2008 13:13:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[User](
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [varchar](50) NOT NULL,
[AGE] [int] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
可自行适当追加一些数据。
打开VS2008,新建tutorial工程。在工程中新建App_Code文件夹,并新增LinQ To SQL类,命名为User.dbml。
在VS2008的视图菜单下选择服务器资源管理器,添加连接并指向上面新建的数据库,把User表拖曳至User.dbml文件上并保存。
打开默认的Default.aspx,添加GridView。后台代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack){
UserDataContext userDC = new UserDataContext();
GridView1.DataSource = from p in userDC.User
where p.AGE > 22
//select new {a = p.NAME};
select p;
GridView1.DataBind();
}
}
}
启动Web服务,页面上就会显示出满足条件的数据。
相关文章推荐
- .Net开发必备十大工具详解之查询表达式(LINQ)简介
- 查询表达式(LINQ)简介
- linq 实现group by 不使用group关键字 等同lambad表达式中的group join 查询一对多关系
- 十五、C# 使用查询表达式的LINQ
- 查询表达式(LINQ)简介
- C#使用LINQ查询表达式的基本子句总结
- C# 温故知新 基础篇(15) 使用LINQ查询表达式<思维导图>
- LINQ查询表达式中使用对象初始化器
- 查询表达式(LINQ)简介
- 查询表达式(LINQ)简介
- [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
- 第十五章 使用查询表达式的LINQ
- 查询表达式(LINQ)简介
- Lambda表达式--使用方法语法的复杂查询: join (在单个 LINQ to Entities 查询中的两个结构上不兼容的初始化过程中出现类型)
- 查询表达式(LINQ)简介
- 查询表达式(LINQ)简介
- (14)使用查询表达式的LINQ
- 深入理解 c# 第一章 使用LINQ 查询表达式
- 《C#本质论》读书笔记(15)使用查询表达式的LINQ
- linq 扩展,在查询中使用字符串表达式对结果进行排序