例子:Database - Linq to sql】的更多相关文章

DataContext类型(数据上下文)是System.Data.Linq命名空间下的重要类型,用于把查询句法翻译成SQL语句,以及把数据从数据库返回给调用方和把实体的修改写入数据库. DataContext提供了以下一些使用的功能: 以日志形式记录DataContext生成的SQL 执行SQL(包括查询和更新语句) 创建和删除数据库 DataContext 是通过数据库连接映射的所有实体的源. 它会跟踪您对所有检索到的实体所做的更改,并且保留一个“标识缓存”,该缓存确保使用同一对象实例表示多次…
在本篇中,我们将接着上一篇“LINQ to SQL 和 Entity Framework(上)”的内容,继续使用LINQ to SQL和Entity Framework来实践“解释查询”,学习这些技术的关键特性.我们在此关注的是LINQ to SQL和Entity Framework中的”LINQ”部分,并会比较这两种技术的相同和不同之处.通过我们之前介绍的LINQ知识还有将来会讨论的更多LINQ Operators,相信阅者能针对LINQ to SQL和Entity Framework写出优雅…
在上一篇中,我们从理论和概念上详细的了解了LINQ的第二种架构“解释查询”.在这接下来的二个篇章中,我们将使用LINQ to SQL和Entity Framework来实践“解释查询”,学习这些技术的关键特性.在本系列文章中,我不准备事无巨细的讨论LINQ to SQL和Entity Framework的方方面面,毕竟那样需要太多的篇幅,也会让我们从LINQ上面转移注意力,况且,园子里也有不少介绍LINQ to SQL和Entity Framework的好文章.我们在此关注的是LINQ to S…
前些时间用LINQ to SQL做了一些项目,现在打算总结一下,帮助新手快速入门,并写一些别的教程没提到的东西. 一.LINQ to SQL和别的LINQ to XXX有什么关系?二.延迟执行(Deferred Loading)三.什么是LINQ to SQL?四,看看LINQ to SQL到底干了些啥?——创建自己的工具类五.创建一个基本查询六,大致扫一扫    1,WHERE    2,DISTINCT    3,AVG/COUNT/SUM/MIN/MAX    4,GROUP BY    …
LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知.静态类型等强类型语言的好处.并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源. LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越.过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源…
[IT168 专稿]该系列教程描述了如何采用手动的方式映射你的对象类到数据表(而不是使用象SqlMetal这样的自动化工具)以便能够支持数据表之间的M:M关系和使用实体类的数据绑定.即使你选择使用了自动生成类的工具,理解这一实现过程可以让你更加方便地对你的应用程序加以扩展. 第二篇:步步学LINQ to SQL:使用LINQ检索数据 第三篇:步步学LINQ to SQL:为实体类添加关系 下面阐述本文的目标以及该示例程序为初级开发人员介绍如何学习LINQ的基本要点: ·使用LINQ to SQL…
LINQ之路(2):LINQ to SQL本质 在前面一篇文章中回顾了LINQ基本语法规则,在本文将介绍LINQ to SQL的本质.LINQ to SQL是microsoft针对SQL Server的一个ORM的解决方案.既然是ORM,那对象(Object).关系数据(Relation)和映射(Mapping)这三个组成要素是不可或缺的.本文将分为对象和关系数据的映射.从查询表达式到SQL的转换和DataContext数据上下文三个部分来说明. 1.对象和关系数据的映射 通过定义对象和关系数据…
原文:LINQ To SQL在N层应用程序中的CUD操作.批量删除.批量更新 0. 说明 Linq to Sql,以下简称L2S.    以下文中所指的两层和三层结构,分别如下图所示: 准确的说,这里的分层并不是特别明确:(1) 生成的DataContext(Linq t0 SQL Runtime)和Entity是放在一个文件中的,物理上不能切割开来:上图只是展示逻辑上的结构.(2) 拿上图右边的三层结构来说,鉴于第(1)点,UI层就可以跨越BusinessLogic层,直接访问L2S层,这可能…
适用场景:用于判断集合中元素,进一步缩小范围. Any 说明:用于判断集合中是否有元素满足某一条件:不延迟.(若条件为空,则集合只要不为空就返回True,否则为False).有2种形式,分别为简单形式和带条件形式. 1.简单形式: 仅返回没有订单的客户: var q = from c in db.Customers where !c.Orders.Any() select c; 生成SQL语句为: SELECT [t0].[CustomerID], [t0].[CompanyName], [t0…
LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select c; 再如:筛选19…
它基于由 ADO.NET 提供程序模型提供的服务.因此,我们可以将 LINQ to SQL 代码与现有的 ADO.Net 应用程序混合在一起,将当前 ADO.NET 解决方案迁移到 LINQ to SQL. 1.连接 在创建 LINQ to SQL DataContext 时,可以提供现有 ADO.NET 连接.对 DataContext 的所有操作(包括查询)都使用所提供的这个连接.如果此连接已经打开,则在您使用完此连接时,LINQ to SQL 会保持它的打开状态不变.我们始终可以访问此连接…
运算符转换 1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable<TSource> 可返回类型化为泛型 IEnumerable 的参数.在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行.但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL. 解决方法是指定 where 的客户端泛型 IEnumerable<T> 实现以替换泛…
对象加载 延迟加载 在查询某对象时,实际上你只查询该对象.不会同时自动获取这个对象.这就是延迟加载. 例如,您可能需要查看客户数据和订单数据.你最初不一定需要检索与每个客户有关的所有订单数据.其优点是你可以使用延迟加载将额外信息的检索操作延迟到你确实需要检索它们时再进行.请看下面的示例:检索出来CustomerID,就根据这个ID查询出OrderID. var custs = from c in db.Customers where c.City == "Sao Paulo" sele…
Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员.第二个例子使用Nullable<T>.HasValue查询雇员,其结果与第一个例子相同.在第三个例子中,使用Nullable<T>.Value来返回ReportsToEmployee不为null的雇员的ReportsTo的值. 1.Null 查找不隶属于另一个雇员的所有雇员: var q = from e in db.Employees where e.ReportsToEmployee…
1.简单形式 说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库. var newCustomer = new Customer { CustomerID = "MCSFT", CompanyName = "Microsoft", ContactName = "John Doe", ContactTitle = "Sales Manager", Ad…
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by o.CustomerID into o where o.Count() > 5 select o.Key).Contains(c.CustomerID) select c; in 操作 描述:查…
这篇博客将介绍如何使用LINQ TO SQL来创建数据库,以及如何映射Table之间的主外键关系. 我们的数据库表关系如下: Province与City之间1:M,City与Area之间1:M的关系. 下面就通过LINQ TO SQL来创建这样的数据库,以Province表为例, Province Table: using System.Collections.Generic; using System.Data.Linq; using System.Data.Linq.Mapping; nam…
.NET面试题系列目录 名言警句 "理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列." - Jon Skeet LINQ to Object和LINQ to SQL有何区别? LINQ to SQL可以将查询表达式转换为SQL语句,然后在数据库中执行.相比LINQ to Object,则是将查询表达式直接转化为Enumerable的一系列方法,最终在C#内部执行.LINQ to Object的数据源总是实现IEnumerable<T&g…
对象标识 运行库中的对象具有唯一标识.引用同一对象的两个变量实际上是引用此对象的同一实例.你更改一个变量后,可以通过另一个变量看到这些更改. 关系数据库表中的行不具有唯一标识.由于每一行都具有唯一的主键,因此任何两行都不会共用同一键值. 实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理.这就是 LINQ to SQL 支持的模型.将数据作为行从数据库中提取出来时,你不期望表示相同数据的两行实际上对应于相同的行实例.如果您查询特定客户两次,您将获得两行数据.每一…
LINQ to SQL支持以下String方法.但是不同的是默认情况下System.String方法区分大小写.而SQL则不区分大小写. 1.字符串串联(String Concatenation) var q = from c in db.Customers select new { c.CustomerID, Location = c.City + ", " + c.Country }; 语句描述:这个例子使用+运算符在形成经计算得出的客户Location值过程中将字符串字段和字符串…
Simultaneous Changes开放式并发控制 下表介绍 LINQ to SQL 文档中涉及开放式并发的术语: 术语 说明 并发 两个或更多用户同时尝试更新同一数据库行的情形. 并发冲突 两个或更多用户同时尝试向一行的一列或多列提交冲突值的情形. 并发控制 用于解决并发冲突的技术. 开放式并发控制 先调查其他事务是否已更改了行中的值,再允许提交更改的技术.相比之下,保守式并发控制则是通过锁定记录来避免发生并发冲突.之所以称作开放式控制,是因为它将一个事务干扰另一事务视为不太可能发生. 冲…
适用场景:适量的取出自己想要的数据,不是全部取出,这样性能有所加强. Take 说明:获取集合的前n个元素:延迟.即只返回限定数量的结果集. var q = ( from e in db.Employees orderby e.HireDate select e) .Take(); 语句描述:选择所雇用的前5个雇员. Skip 说明:跳过集合的前n个元素:延迟.即我们跳过给定的数目返回后面的结果集. var q = ( from p in db.Products orderby p.UnitPr…
议程 1.LINQ To SQL概述 2.LINQ To SQL对象模型 3.LINQ To SQL查询 用到的数据库 SQL Server 2005,数据库名为Test. 两张表,分别为Student学生表和Score成绩表   LINQ To SQL概述 在 LINQ to SQL 中,关系数据库的数据模型映射到用开发人员所用的编程语言表示的对象模型.当应用程序运行时,LINQ to SQL 会将对象模型中的语言集成查询转换为 SQL,然后将它们发送到数据库进行执行.当数据库返回结果时,LI…
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 LINQ to SQL语句(1)之Where 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q…
LINQ是新生事物,不过从不少文章和讨论上看来,这方面的概念也已经有点混沌不清了.因此我们经常可以看到这样的话: LINQ只能将数据表与实体属性一一对应…… LINQ开发指南:在LINQ中进行数据库字段映射…… 以上两句话其实说的都是LINQ to SQL而不是指LINQ.可能由于LINQ to SQL的上镜率最广(连MSDN上About LINQ的第一个示例就是查询数据库的),因此许多人都将LINQ to SQL与LINQ混用,这会给初学者造成误解,认为LINQ就是LINQ to SQL,LI…
Linq to SQL 语法查询(子查询 & in操作 & join ) 引用地址:http://www.cnblogs.com/82767136/articles/2949541.html 子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers                    where                        (from o in ctx.Orders group o by o.Custome…
public class Linq { MXSICEDataContext Db = new MXSICEDataContext(); // LINQ to SQL // Count/Sum/Min/Max/Avg // Count public void Count() { // 说明:返回集合中的元素个数,返回 INT 类型:不延迟.生成 SQL 语句为: SELECT COUNT(*) FROM //简单形式 性能差 var count = Db.MXSMemeber.Count(); /…
Step1:建立数据库      在使用Linq to Sql前,我们要将相应的数据库建好.在这个Demo中,使用的数据库是SQL Server Express 2005.      我们首先建立一个叫的数据库MyBulletin,及两个数据表:Category和Bulletin,分别表示公告的分类和公告,建立方法不再赘述.至于两个表的具体字段请参看图1. 图1.数据表结构 其中Category和Bulletin存在一个一对多的关联,表示一个分类下可以有多条公告. Step2:建立LINQ to…
LINQ to SQL语句 (1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q = from c in db.Customers where c.City == "London" select…
转载自:http://blog.csdn.net/pan_junbiao/article/details/7015633 LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. Where操作包括3种形式,分别为简单形式.关系条件形式.First()形式.下面分别用实例举例下: 1.简单形式: 例如:使用where筛选在伦敦的客户 var q =…