文章分类 - LINQ
1
摘要:本文旨在和网友分享Linq在项目中的实践,曾经我参与过的项目都能看见Linq的影子。(LinqTosql、LinqToString、LinqToXML、LinqToEntity 等等...)个人认为Linq是近年来微软推出的非常成功的一项技术。比如,当我熟悉Linq之后,再用SQL写商业逻辑时,感觉已经不再适应了。如果您还没有系统的研究过Linq,希望本文可以给您带来帮助。 本文将从以下几个方面介绍Linq在实际开发中的应用范围: 一、LinqToXML 在测试工程内加入xml文件: 用Linq操作XML文件,可以增删改查xml,示例代码如下: 二、LinqToEntity 用EF操作No
阅读全文
摘要:http://www.cnblogs.com/kevin2013/category/246638.html
阅读全文
摘要:原文:http://www.cnblogs.com/chwkai/archive/2009/12/31/1637217.html由于我所经历的项目大多数是data concentrated的,所以对LINQ2SQL和EF最感兴趣,非常高兴终于有“官方”的O/R框架可以用。但也有另外的声音,在msdn的论坛里我看到很多人说LINQ很鸡肋,LINQ已死,弄得好友terrylee...
阅读全文
摘要:我们使用视图和使用数据表类似,只需将视图从“服务器资源管理器/数据库资源管理器”拖动到O/R 设计器上,自动可以创建基于这些视图的实体类。我们可以同操作数据表一样来操作视图了。这里注意:O/R 设计器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。换句话说,实体类与数据库表或视图之间只能具有 1:1 映射关系。不支持复杂映射(例如,将一个实体类映射到多个表)。但是,可以将一个实体类映射...
阅读全文
摘要:动态查询 有这样一个场景:应用程序可能会提供一个用户界面,用户可以使用该用户界面指定一个或多个谓词来筛选数据。这种情况在编译时不知道查询的细节,动态查询将十分有用。 在LINQ中,Lambda表达式是许多标准查询运算符的基础,编译器创建lambda表达式以捕获基础查询方法(例如 Where、Select、Order By、Take While 以及其他方法)中定义的计算。表达式目录树用于针对数据源...
阅读全文
摘要:创建和删除数据库 CreateDatabase方法用于在服务器上创建数据库。 DeleteDatabase方法用于删除由DataContext连接字符串标识的数据库。 数据库的名称有以下方法来定义: 如果数据库在连接字符串中标识,则使用该连接字符串的名称。 如果存在DatabaseAttribute属性(Attribute),则将其Name属性(Property)用作数据库的名称。 如果连接字符串...
阅读全文
摘要:1.在Select中使用用户定义的标量函数 所谓标量函数是指返回在 RETURNS 子句中定义的类型的单个数据值。可以使用所有标量数据类型,包括 bigint 和 sql_variant。不支持 timestamp 数据类型、用户定义数据类型和非标量类型(如 table 或 cursor)。在 BEGIN...END 块中定义的函数主体包含返回该值的 Transact-SQL 语句系列。返回类型...
阅读全文
摘要:在我们编写程序中,往往需要一些存储过程,在LINQ to SQL中怎么使用呢?也许比原来的更简单些。下面我们以NORTHWND.MDF数据库中自带的几个存储过程来理解一下。 1.返回数量 在数据库中,有名为Customers Count By Region的存储过程。该存储过程返回顾客所在"WA"区域的数量。 ALTER PROCEDURE [dbo].[NonRowset] (@param1 N...
阅读全文
摘要:1.AsEnumerable:将类型转换为泛型 IEnumerable 使用 AsEnumerable 可返回类型化为泛型 IEnumerable 的参数。在此示例中,LINQ to SQL(使用默认泛型 Query)会尝试将查询转换为 SQL 并在服务器上执行。但 where 子句引用用户定义的客户端方法 (isValidProduct),此方法无法转换为 SQL。 解决方法是指定 wher...
阅读全文
摘要:运行库中的对象具有唯一标识。引用同一对象的两个变量实际上是引用此对象的同一实例。你更改一个变量后,可以通过另一个变量看到这些更改。 关系数据库表中的行不具有唯一标识。由于每一行都具有唯一的主键,因此任何两行都不会共用同一键值。 实际上,通常我们是将数据从数据库中提取出来放入另一层中,应用程序在该层对数据进行处理。这就是 LINQ to SQL 支持的模型。将数据作为行从数...
阅读全文
摘要:Null语义 说明:下面第一个例子说明查询ReportsToEmployee为null的雇员。第二个例子使用Nullable.HasValue查询雇员,其结果与第一个例子相同。在第三个例子中,使用Nullable.Value来返回ReportsToEmployee不为null的雇员的ReportsTo的值。 1.Null var q = from e in db.Employees where e...
阅读全文
摘要:Simultaneous Changes开放式并发控制 下表介绍 LINQ to SQL 文档中涉及开放式并发的术语: 术语 说明 并发 两个或更多用户同时尝试更新同一数据库行的情形。 ...
阅读全文
摘要:总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我在这里简单介绍一下,记录自己所学的东西,也...
阅读全文
摘要:在上两篇我介绍了C#3.0新语特性和改进,这些新特性在我们编写程序时为我们提供了非常大的帮助。从这篇开始,我们开始一起来探讨LINQ。 LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性。已成为编程语言的一个组成部分,在编写程序时可以得到很好的编译时语法检查,丰富的元数据,智能感知、静态类型等强类型语言的好处。并且它同时还使得查询可以方便地对...
阅读全文
摘要:上一篇讲述了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在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来...
阅读全文
摘要:适用场景:在我们表关系中有一对一关系,一对多关系,多对多关系等。对各个表之间的关系,就用这些实现对多个表的操作。 说明:在Join操作中,分别为Join(Join查询), SelectMany(Select一对多选择)和GroupJoin(分组Join查询)。 该扩展方法对两个序列中键匹配的元素进行inner join操作 SelectMany 说明:我们在写查询语句时,如果被翻译成SelectM...
阅读全文
摘要:适用场景:分组数据,为我们查找数据缩小范围。 说明:分配并返回对传入参数进行分组操作后的可枚举对象。分组;延迟 1.简单形式: var q = from p in db.Products group p by p.CategoryID into g select g; 说明:from p in db.Products 表示从表中将产品对象取出来。group p by p.CategoryID i...
阅读全文
摘要:适用场景:对两个集合的处理,例如追加、合并、取相同项、相交项等等。 Concat(连接) 说明:连接不同的集合,不会自动过滤相同项;延迟。 1.简单形式: var q = ( from c in db.Customers select c.Phone ).Concat( from c in db.Customers select c.Fax ).Concat( from e in db.Emplo...
阅读全文
摘要:1.简单形式 说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库。 NorthwindDataContext db = new NorthwindDataContext(); var newCustomer = new Customer { CustomerID = "MCSFT", CompanyName = "Mic...
阅读全文
摘要:目录 LINQ 项目: 对象和关系型查询的统一语言特性 1 实验目标 1 练习1 –面向内存中集合的LINQ 2 任务1 –创建 “LINQ Overview” 解决方案 2 任务 2 – 查询一个整数类型的列表 2 任务 3 – 查询结构化类型 4 练习 2 – LINQ to SQL: 面向连接数据库的LINQ 6 任务 1 – 创建对象映射– 创建一个对象并提供属性 6 任务 2 –创建...
阅读全文
1