首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linq to sql并发与事务

检测并发        首先使用下面的SQL语句查询数据库的产品表: select * from products where categoryid=1        查询结果如下图:       ...之前SQL语句库存-2生效了,而我们程序的更新(库存-1)被放弃了。在页面上也显示了所有分类为1的产品ID(因为我们之前的SQL语句是对所有分类为1的产品都进行修改的)。       ...产品价格没有变化,库存-1了,都是我们程序的功劳,SQL语句的更新被放弃了。       ...来测试一下,在执行了SQL后再继续程序可以发现界面上只输出了数字1,说明在第一条记录失败后,后续的并发冲突就不再处理了。...事务处理        Linq to sql在提交更新的时候默认会创建事务,一部分修改发生错误的话其它修改也不会生效: ctx.Customers.Add(new Customer { CustomerID

64920

LINQ to SQL(4):OR设计器

在我们使用LINQ to SQL的时候,需要大量的使用OR设计器,虽然我们手工写代码也是完全可以实现的,但是OR设计器是非常强大的工具,我想有了它,没有几个人会去手工写代码,当然了,手动写代码也是必须的...这一篇我就写几个典型的需要手工写代码的情况 打开和关闭复数形式 默认情况下,OR设计器会将数据库对象从服务器资源管理器拖放到OR设计器上的时候,会自动将ies,s结尾修改为单数形式,这样可以更准确的表示实例化的实体类到单个数据记录的事实...,这种情况下,就需要在原有的xxx.designer.cs类里添加一个实体类与他进行对应(像第一节写的那样),他包含“用户名”,“姓名”,“年龄”等属性,当然了,我们完全也可以在外部声明一个这样的类型,...但是这样不光破坏了对象的封装,而且在使用上也增加了复杂度 向实体类中添加验证 验证实体类是指确认输入到数据对象中的值是否符合对象架构内的约束,以及是否符合为应用程序所建立的规则的过程。...还可以减少应用程序和数据库之间的潜在往返行程次数 在对实体类中添加验证的时候,有两个不同的阶段,分别是在列值更改过程中验证数据和在事体类更新过程中验证数据,由于 C# 项目不会自动生成事件处理程序,因此您可以使用

877100

LINQ to SQL(1):基础入门

LINQ to SQL是在SQL SERVER数据库上设置一个强类型化界面的方式,LINQ to SQL提供的方式是目前我所见到查询SQL SERVER最简单也是最有效的方式,他可以使用自定义的类型与数据表甚至存储过程进行对应...,而不像我们使用ADO.NET那样,把更多的功夫用在数据类型转换等等的问题上,当程序运行的时候,LINQ to SQL会将我们使用自己的语言定义的模型中的语言继承查询转换为SQL,然后将他在数据库上执行...,然后将返回的结果转换为我们自定义的类对象,使用过nhibernate或者ibatis.net的朋友,可能就很熟悉这种方式啦,我个人认为,LINQ to SQL在某些地方弥补了这两种框架的缺陷,而且,如果我们可以在项目中使用...LINQ语句 注意:本节以及以后的数据库示例,我想会放到文章最后,有兴趣的朋友可以直接下载,如果您有sql 2000/2005的示例数据库,就不需要啦 找到northwind(下载),附加到您的数据库就可以啦...to SQL模型,怎么样,LINQ to SQL的查询方式,是不是很让人心潮澎湃啊

1.3K60

SQL To LinQ 你知道么?

学习linQ的时候,你应该用到过LinQ to SQL 的工具---LinQPad,刚开始用,不太熟悉,尤其是涉及到多表查询,不会写LinQ语句怎么办?    ...这不是问题,下面先来介绍另一个工具 SQL to LinQ,SQL已经学了很长时间了,做系统的时候经常用到,对于SQL语句应该不陌生吧。    ...打开SQL Server 2008 ,新建查询,我想把三张表中的信息一一对应起来,并且只要我想要的字段的信息,SQL语句: SELECT [t2]....然后,打开SQL to LinQ,Tools--Linqer Connections,新建连接: ?   选择Add: ? 设置要连接的数据库, ? 选择LinQ to Entities: ?...确认,将SQL语句复制到左边的SQL框中,在上边的Connection中选择你刚新建的连接,执行,然后右边就会把相应的LinQ语句显示出来: ?

54920

.NET深入解析LINQ框架(二:LINQ优雅的前奏)

在ADO.NET EntityFrameWork、Linq to SQL框架中有很多值得我们探索的对象模型。...学生集合类型主要就是用来容纳学生实体,集合类型提供一系列的方法可以对这个集合进行连续的操作,很常用的就是筛选操作。...其实LINQ就是使用这种方式来作为它的查询原理的。这里将直接点题到LINQ核心设计原理上。...2】.LINQ框架核心设计原理 2.1.托管语言之上的语言(LINQ查询表达式) 通过上面的例子我们应该基本了解了链式设计模式、链式查询方法的奥妙和用武之地。...LINQ是在.NET3.5版本中引入的,核心程序集也就是System.Core.dll,有两个命名空间是直接关系到LINQ的,分别是System.Linq(LINQ查询表达式直接对应的链式查询方法集)、

2K30

.NET深入解析LINQ框架(一:LINQ优雅的前奏)

微软最初的设计目的是为了解决对象/关系映射的解决方案,通过简单的使用类似T-SQL的语法进行数据实体的查询和操作。...我们可以使用LINQ查询内存中的对象(LINQ to Object)、数据库(LINQ to SQL)、XML文档(LINQ to XML),还有更多的自定义数据源。...在LINQ未出现之前,我们需要掌握很多针对不同数据源查询的接口技术,对于OBJECT集合我们需要进行重复而枯燥的循环迭代。对于数据库我们需要使用诸多T-SQL\PL-SQL之类的数据库查询语言。...比如传统的WINFORM框架,我们可以将ORM实体作为窗体的控件数据源,让ORM实体与窗体的控件之间形成自然的映射,包括对赋值、设置值都很方便。...但是这样的实体经过序列化后到达服务层,然后经过检查进入到BLL层接着进入到DAL层,这个时候ORM框架需要使用该实体作相应的数据库操作。那么我们如何使用.NET3.0的特性为ORM添加其他的行为呢?

1.8K31

LINQ to SQL(3):增删改查

上一节中,我已经写过了利用OR设计器生成对象模型的方式,其实生成这样对数据库进行映射的模型的方式不只这一种,不过VS为我们提供的这种设计器真的是很强大,在实际应用中也是经常用到的 这一节写利用LINQ...to SQL对数据库进行的简单增删改查的操作的实现方式,这里注意是“简单”,复杂的查询呢,我将会在下一篇或者下下一篇中写到,那里会有很多的内容,比如处理并发啦,自定义LINQ表达式查询啦,等等的这些,而下一篇中我计划写一些关于扩展...OR设计器生成的代码以及向实体类中添加验证的一些东西,因为毕竟我们使用OR设计器生成代码的时候,还不够灵活 好了,回到正题,我们还延续上一节的内容,假设我们已经把我们的dbml设计成了以下的这个样子 ?...绝对的雷同,不是巧合,当然了,访问视图的规则,还是必须要和数据库中我们创建视图的规则一样的,能怎么操作,不能怎么操作,不是由LINQ to SQL决定的,OR设计器只是帮助我们生成了一个实体类对于视图结果集的一个映射而已...怎么样,简单到不可思议吧,必要怀疑,不要以为LINQ to SQL是多么高深的话题,完全没有,但是,中国话呀,就是这样,一说“但是”就要麻烦啦,没错,在我们享受它的方便快捷的同时,也会经常遇到这样那样的问题

67890

.NET深入解析LINQ框架(六:LINQ执行表达式)

由此可以得出一个结论,LINQ语句是会被执行和解析的两个动作,在还没有进入到提供程序时已经可以看出LINQ是可以附带一些执行逻辑在里面的,而不是最终的SQL执行逻辑。...我们还是来看一个比较简单的LINQ解析后的SQL和链式方法; LINQ查询表达式:from truck in TB_CX_TRUCKs where 1==1 ||truck.LICENSE_NUMBER.Length...将界面上的查询实体传入到数据访问层之后: 1 public List GetList(Truck truckModel) 2 { 3 using (KJtest0817Entities...因为只要我们用Linq或者链式方法出来的写出来的SQL语句中的where条件后面将都是and关系,这个时候我们只能用链式方法来进行拆分才行。...总结:其实说了那么多目的只有一个,LINQ的解析过程并非只有一个“提供程序翻译成SQL”的过程,而是包括了两个阶段,四个过程的处理,LINQ的写法很多种,原理应该是差不多的,只要我们在写LINQ的时候综合考虑这几个处理过程

1.3K10
领券