LINQ To SQL
文章平均质量分 74
Johe_08
做生活中的强者!做工作上的勇者!Learn how to learn!
展开
-
LINQ体验(14)——LINQ to SQL语句之存储过程
存储过程在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些。下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下。1.标量返回在数据库中,有名为Customers Count By Region的存储过程。该存储过程返回顾客所在"WA"区域的数量。ALTER PROCEDURE [dbo].[NonRowset]转载 2009-03-03 17:05:00 · 1061 阅读 · 0 评论 -
LINQ体验(1)——Visual Studio 2008新特性
一、写本系列的目的我平时利用课余零碎时间来学习ASP.NET3.5、LINQ、Silverlight、ASP.NET 3.5 Extensions等新东西,通过笔记形式来记录自己所学的历程,也给大家一起学习Visual Studio 2008 和 .NET 3.5提供一个平台,为保证此系列的完整性,我打算先依次介绍一下C# 3.0新语言特性和改进,然后从一条一条LINQ语句分析来贯穿LINQ的转载 2009-03-03 16:41:00 · 1414 阅读 · 0 评论 -
LINQ体验(18)——LINQ to SQL语句之视图和继承支持
视图我们使用视图和使用数据表类似,只需将视图从“服务器资源管理器/数据库资源管理器”拖动到O/R 设计器上,自动可以创建基于这些视图的实体类。我们可以同操作数据表一样来操作视图了。这里注意:O/R 设计器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。换句话说,实体类与数据库表或视图之间只能具有 1:1 映射关系。不支持复杂映射(例如,将一个实体类映射到多个表)。但是,可以将一个实转载 2009-03-03 17:10:00 · 1114 阅读 · 0 评论 -
LINQ体验(15)——LINQ to SQL语句之用户定义函数
用户定义函数我们可以在LINQ to SQL中使用用户定义函数。只要把用户定义函数拖到O/R设计器中,LINQ to SQL自动使用FunctionAttribute属性和ParameterAttribute属性(如果需要)将其函数指定为方法。这时,我们只需简单调用即可。在这里注意:使用用户定义函数的时候必须满足以下形式之一,否则会出现InvalidOperationException异常情况转载 2009-03-03 17:07:00 · 948 阅读 · 0 评论 -
LINQ体验(4)——LINQ简介和LINQ to SQL语句之Where
查询表达式(LINQ)简介在上两篇我介绍了C#3.0新语特性和改进,这些新特性在我们编写程序时为我们提供了非常大的帮助。从这篇开始,我们开始一起来探讨LINQ。LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。转载 2009-03-03 16:48:00 · 783 阅读 · 0 评论 -
LINQ体验(3)——C# 3.0新语言特性和改进(下篇)
上一篇我们介绍了C# 3.0新语言特性和改进上部分,这篇我们继续介绍剩下的部分。C# 3.0新语言特性和改进包括:自动属性(Auto-Implemented Properties) 隐含类型局部变量(Local Variable Type Inference) 匿名类型(Anonymous Types) 对象与集合初始化器(Object and Collection Ini转载 2009-03-03 16:46:00 · 738 阅读 · 0 评论 -
LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
ADO.NET与LINQ to SQL它基于由 ADO.NET 提供程序模型提供的服务。因此,我们可以将 LINQ to SQL 代码与现有的 ADO.NET 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to SQL。 1.连接 在创建 LINQ to SQL DataContext 时,可以提供现有 ADO.NET 连接。对 DataContext 的所转载 2009-02-17 10:53:00 · 694 阅读 · 0 评论 -
LINQ to SQL语句(16)之对象标识
对象标识运行库中的对象具有唯一标识。引用同一对象的两个变量实际上是引用此对象的同一实例。你更改一个变量后,可以通过另一个变量看到这些更改。 关系数据库表中的行不具有唯一标识。由于每一行都具有唯一的主键,因此任何两行都不会共用同一键值。 实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理。这就是 LINQ to SQL 支持的模型。将数据作为行从转载 2009-02-17 09:45:00 · 632 阅读 · 0 评论 -
LINQ to SQL语句(12)之Delete和使用Attach
删除(Delete)1.简单形式说明:调用DeleteOnSubmit方法即可。OrderDetail orderDetail = db.OrderDetails.First (c => c.OrderID == 10255 && c.ProductID == 36);db.OrderDetails.DeleteOnSubmit(orderDetail);d转载 2009-02-16 15:55:00 · 1899 阅读 · 0 评论 -
LINQ to SQL语句(5)之Order By
Order By操作适用场景:对查询出的语句进行排序,比如按时间排序等等。说明:按指定表达式对集合排序;延迟,:按指定表达式对集合排序;延迟,默认是升序,加上descending表示降序,对应的扩展方法是OrderBy和OrderByDescending1.简单形式这个例子使用 orderby 按雇用日期对雇员进行排序:var q = from e in db.Emp转载 2009-02-16 11:12:00 · 6292 阅读 · 0 评论 -
LINQ to SQL语句(11)之Update
更新(Update)说明:更新操作,先获取对象,进行修改操作之后,直接调用SubmitChanges()方法即可提交。注意,这里是在同一个DataContext中,对于不同的DataContex看下面的讲解。1.简单形式Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");cust.Conta转载 2009-02-16 15:52:00 · 1214 阅读 · 0 评论 -
LINQ体验(2)——C# 3.0新语言特性和改进(上篇)
在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的第二部分——介绍C# 3.0新语言特性和改进。总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改转载 2009-03-03 16:43:00 · 732 阅读 · 0 评论 -
LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
我们继续讲解LINQ to SQL语句,这篇我们来讨论Union All/Union/Intersect操作和Top/Bottom操作和Paging操作和SqlMethods操作 。Union All/Union/Intersect操作适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。Concat(连接)说明:连接不同的集合,不会自动过滤相同项;延迟。1.简单形转载 2009-03-03 16:54:00 · 1401 阅读 · 0 评论 -
LINQ体验(11)——LINQ to SQL语句之Null语义和String/DateTime方法
在本系列中,主要介绍LINQ to SQL基础的东西,因为LINQ太强大了,它对我们平常使用不同的数据源有着不同的内容,其包括对于SQL Server 数据库的LINQ to SQL;对于XML 文档的LINQ to XML;对于 ADO.NET 数据集的LINQ to DataSet;对于.NET 集合、文件、字符串等的LINQ to Objects。例外也出现了一些对LINQ支持的开源项目,例转载 2009-03-03 17:00:00 · 1647 阅读 · 0 评论 -
LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务
从今天开始继续这个系列。告诉大家一个好消息:微软于2月1日发布了Visual Studio Team System 2008 Team Suite简体中文版,您可以在这里下载Visual Studio Team System 2008 Team Suite简体中文版90 天试用版。今天简单的学习下开放式并发控制和事务的内容,具体详细的内容现在可以参看MSDN了。Simultaneous Cha转载 2009-03-03 16:59:00 · 1125 阅读 · 0 评论 -
LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
我们继续讲解LINQ to SQL语句,这篇我们来讨论Group By/Having操作符和Exists/In/Any/All/Contains操作符。Group By/Having操作符适用场景:分组数据,为我们查找数据缩小范围。说明:分配并返回对传入参数进行分组操作后的可枚举对象。分组;延迟1.简单形式:var q = from p in db.Products转载 2009-03-03 16:52:00 · 1080 阅读 · 1 评论 -
LINQ体验(5)——LINQ to SQL语句之Select/Distinct和Count/Sum/Min/Max/Avg
上一篇讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学转载 2009-03-03 16:49:00 · 1057 阅读 · 0 评论 -
LINQ体验(16)——LINQ to SQL语句之DataContext
DataContextDataContext作为LINQ to SQL框架的主入口点,为我们提供了一些方法和属性,本文用几个例子说明DataContext几个典型的应用。创建和删除数据库CreateDatabase方法用于在服务器上创建数据库。DeleteDatabase方法用于删除由DataContext连接字符串标识的数据库。数据库的名称有以下方法来定义:如果数据库在连接字符串转载 2009-03-03 17:08:00 · 1002 阅读 · 0 评论 -
LINQ体验(13)——LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
运算符转换1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。解决方法是指转载 2009-03-03 17:03:00 · 1138 阅读 · 1 评论 -
LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作
我们继续讲解LINQ to SQL语句,这篇我们来讨论Insert/Update/Delete操作。这个在我们的程序中最为常用了。我们直接看例子。Insert/Update/Delete操作插入(Insert)1.简单形式说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库。NorthwindDataC转载 2009-03-03 16:56:00 · 1644 阅读 · 0 评论 -
LINQ体验(6)——LINQ to SQL语句之Join和Order By
Join操作适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等。对各个表之间的关系,就用这些实现对多个表的操作。说明:在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。该扩展方法对两个序列中键匹配的元素进行inner join操作SelectMany说明:我们在写查询语句时,如果被转载 2009-03-03 16:51:00 · 1169 阅读 · 0 评论 -
LINQ体验系列文章导航
LINQ体验系列文章导航LINQ推荐资源推荐一个大家学习和交流LINQ的地方,就是博客园的LINQ专题和LINQ交流小组。LINQ专题中整理了有关LINQ方方面面的入门、进阶、深入的文章;学习中遇到什么问题或者疑问也可以LINQ交流小组去提问,往往你会得到意想不到的收获哦。LINQ专题:http://kb.cnblogs.com/zt/linq/LINQ小组:http://spac转载 2009-03-03 17:16:00 · 2830 阅读 · 0 评论 -
LINQ体验(17)——LINQ to SQL语句之动态查询
高级特性本文介绍LINQ的高级特性,其包括大家都关心的动态查询的用法,另外简单提下ID标识这个知识。动态查询有这样一个场景:应用程序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛选数据。这种情况在编译时不知道查询的细节,动态查询将十分有用。在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达式以捕获基础查询方法(例如 Wher转载 2009-03-03 17:09:00 · 1880 阅读 · 0 评论 -
LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods
Top/Bottom操作适用场景:适量的取出自己想要的数据,不是全部取出,这样性能有所加强。Take说明:获取集合的前n个元素;延迟。即只返回限定数量的结果集。var q = ( from e in db.Employees orderby e.HireDate select e) .Take(5);语句描述:选择所雇用的前5个雇员。转载 2009-02-16 15:24:00 · 1126 阅读 · 0 评论 -
LINQ to SQL语句(6)之Group By/Having
Group By/Having操作符适用场景:分组数据,为我们查找数据缩小范围。说明:分配并返回对传入参数进行分组操作后的可枚举对象。分组;延迟1.简单形式:var q = from p in db.Products group p by p.CategoryID into g select g;语句描述:使用Group By按CategoryID转载 2009-02-16 13:24:00 · 1636 阅读 · 0 评论 -
LINQ to SQL语句(20)之存储过程
存储过程在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些。下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下。1.标量返回在数据库中,有名为Customers Count By Region的存储过程。该存储过程返回顾客所在"WA"区域的数量。ALTER PROCEDURE [dbo].[NonRowset]转载 2009-02-17 11:15:00 · 610 阅读 · 0 评论 -
LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
Count/Sum/Min/Max/Avg操作符适用场景:统计数据吧,比如统计一些数据的个数,求和,最小值,最大值,平均数。Count说明:返回集合中的元素个数,返回INT类型;不延迟。生成SQL语句为:SELECT COUNT(*) FROM 1.简单形式:得到数据库中客户的数量:var q = db.Customers.Count();2.带条件形式:得到数据库转载 2009-02-13 16:12:00 · 1284 阅读 · 0 评论 -
LINQ to SQL语句(1)之Where
Where操作适用场景:实现过滤,查询等功能。说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。Where操作包括3种形式,分别为简单形式、关系条件形式、First()形式。下面分别用实例举例下:1.简单形式:例如:使用where筛选在伦敦的客户var q = from c in db.Customers转载 2009-02-13 15:41:00 · 725 阅读 · 0 评论 -
一步一步学Linq to sql(六):探究特性
延迟执行 IQueryable query = from c in ctx.Customers select c; 这样的查询句法不会导致语句立即执行,它仅仅是一个描述,对应一个SQL。仅仅在需要使用的时候才会执行语句,比如: IQueryable query = from c in ctx.Customer转载 2008-12-30 13:10:00 · 652 阅读 · 0 评论 -
一步一步学Linq to sql(四):查询句法
select描述:查询顾客的公司名、地址信息查询句法:var 构建匿名类型1 = from c in ctx.Customers select new { 公司名 = c.CompanyName,转载 2008-12-30 11:04:00 · 761 阅读 · 0 评论 -
一步一步学Linq to sql(二):DataContext与实体
DataContext DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库。 DataContext提供了以下一些使用的功能:l 以日志形式记录DataContext生成的SQLl 执行SQL转载 2008-12-30 10:57:00 · 757 阅读 · 0 评论 -
一步一步学Linq to sql(八):继承与关系
论坛表结构 为了演示继承与关系,我们创建一个论坛数据库,在数据库中创建三个表:1、 论坛版块分类表 dbo.Categories:字段名字段类型可空备注CategoryIDintnot nullidentity/主键CategoryNamevarchar(50)not转载 2008-12-30 13:16:00 · 621 阅读 · 0 评论 -
一步一步学Linq to sql(三):增删改
示例数据库字段名字段类型允许空字段说明IDuniqueidentifier 表主键字段UserNamevarchar(50) 留言用户名PostTimedatetime 留言时间Messagevarchar(400)转载 2008-12-30 11:02:00 · 801 阅读 · 0 评论 -
一步一步学Linq to sql(一):预备知识
什么是Linq to sql Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。 要学好转载 2008-12-30 10:55:00 · 820 阅读 · 1 评论 -
一步一步学Linq to sql(十):分层构架的例子
项目介绍 这节将要把《一步一步学Linq to sql(三):增删改》中留言簿的例子修改为使用WCF的多层构架。我们将会建立以下项目:l A,网站项目 WebSite:留言簿表现层l B,类库项目 Contract:定义数据访问服务的契约l C,类库项目 Service:定义数据访问服务l D,类库转载 2008-12-30 13:29:00 · 734 阅读 · 0 评论 -
一步一步学Linq to sql(七):并发与事务
检测并发 首先使用下面的SQL语句查询数据库的产品表:select * from products where categoryid=1 查询结果如下图: 为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序: var query = from转载 2008-12-30 13:13:00 · 616 阅读 · 0 评论 -
查询表达式(LINQ)简介
查询表达式(LINQ)简介LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。LINQ定义了一组标准查询操作符用于在所有基于.NET平台转载 2009-02-13 15:31:00 · 603 阅读 · 0 评论 -
LINQ to SQL实例
第一步:建立dbml(Database Mark Language。数据库描述语言,是一种xml格式的文档,用来描述数据库)文件,以Northwind数据库为例,上述Customers类被映射成一个表,对应数据库中的 Customers表 第二步:创建一个ASP.NET页面,在页面上加入一个GridView控件 第三步:编写代码进行数据绑定 第四步:运行显示结果。好转载 2009-02-13 15:33:00 · 2770 阅读 · 6 评论 -
LINQ to SQL语句(18)之运算符转换
运算符转换1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。解决方法转载 2009-02-17 10:48:00 · 687 阅读 · 0 评论 -
LINQ to SQL语句(17)之对象加载
对象加载延迟加载在查询某对象时,实际上你只查询该对象。不会同时自动获取这个对象。这就是延迟加载。例如,您可能需要查看客户数据和订单数据。你最初不一定需要检索与每个客户有关的所有订单数据。其优点是你可以使用延迟加载将额外信息的检索操作延迟到你确实需要检索它们时再进行。请看下面的示例:检索出来CustomerID,就根据这个ID查询出OrderID。var custs =转载 2009-02-17 09:53:00 · 695 阅读 · 0 评论