Linq to Sql : 并发冲突及处理策略
摘要:0. 并发冲突的示例 单用户的系统现在应该比较罕见了,一般系统都会有很多用户在同时进行操作;在多用户系统中,涉及到的一个普遍问题:当多个用户“同时”更新(修改或者删除)同一条记录时,该如何更新呢? 下图展示了开放式并发冲突的一个示例: 假设数据库中有一条记录Record{Field1=5, Field2=6, Field3=7}(以下简写为{5, 6, 7}),A、B两个用户按照如下顺序操作这一...
阅读全文
posted @
2010-01-30 18:23
Silent Void
阅读(6309)
推荐(2) 编辑
LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新
摘要:0. 说明 Linq to Sql,以下简称L2S。 以下文中所指的两层和三层结构,分别如下图所示: 准确的说,这里的分层并不是特别明确:(1) 生成的DataContext(Linq t0 SQL Runtime)和Entity是放在一个文件中的,物理上不能切割开来;上图只是展示逻辑上的结构。(2) 拿上图右边的三层结构来说,鉴于第(1)点,UI层就可以跨越BusinessLogic层,直接访...
阅读全文
posted @
2010-01-29 16:07
Silent Void
阅读(4221)
推荐(0) 编辑
Linq to Sql : 三种事务处理方式
摘要:Linq to SQL支持三种事务处理模型:显式本地事务、显式可分发事务、隐式事务。(from MSDN: 事务 (LINQ to SQL))。MSDN中描述得相对比较粗狂,下面就结合实例来对此进行阐述。 0. 测试环境 OS Windows Server 2008 Enterprise + sp1 IDE Visual Studio 2008, .net framework 3.5 + SP...
阅读全文
posted @
2010-01-27 14:47
Silent Void
阅读(22212)
推荐(6) 编辑
Linq to Sql:N层应用中的查询(下) : 根据条件进行动态查询
摘要:如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时候,我们使用var来定义L2S查询,让编译器自动推断变量的具体类型(IQueryable<匿名类型>),并提供友好的智能提示;而且可以充分应用L2S的延迟加载特性,来进行动态查询。但如果我们希望将业务逻辑放在一个独立的层中(譬如封装在远程的WCF应用中),又希望在逻辑层应...
阅读全文
posted @
2010-01-26 20:01
Silent Void
阅读(7375)
推荐(2) 编辑
Linq to Sql:N层应用中的查询(上) : 返回自定义实体
摘要:如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时候,我们使用var来定义L2S查询,让IDE自动推断变量的具体类型(IQueryable<匿名类型>),并提供友好的智能提示;而且可以充分应用L2S的延迟加载特性,来进行动态查询。但如果我们希望将业务逻辑放在一个独立的层中(譬如封装在远程的WCF应用中),又希望在逻辑层应...
阅读全文
posted @
2010-01-25 13:55
Silent Void
阅读(7074)
推荐(0) 编辑
MyGeneration学习笔记(11) :dOOdad的架构(Architectures)
摘要: 前面10篇介绍了使用dOOdads做ORM映射的基本使用方法和我在使用过程中的总结的一些技巧,这里我再对dOOdads项目做一个概要的总结:
1. 使用dOOdads的概要步骤:详细步骤及我在使用中遇到的问题,我以前都有记录http://www.cnblogs.com/happyhippy/category/79938.html
2. dOOdad的架构:
阅读全文
posted @
2007-04-16 16:38
Silent Void
阅读(4641)
推荐(0) 编辑
MyGeneration学习笔记(10) :配置数据库连接
摘要:在dOOdad生成的Concrete Class的构造函数中设置数据库连接字符串
阅读全文
posted @
2007-01-29 13:14
Silent Void
阅读(1521)
推荐(0) 编辑
MyGeneration学习笔记(9) :在WebService使用dOOdad时,对ToXml/FromXml的一点改进
摘要:ToXml()返回的数据中丢失了Schema,调用FromXml()之前需要重新构造Schema...
阅读全文
posted @
2006-09-02 19:48
Silent Void
阅读(711)
推荐(0) 编辑
MyGeneration学习笔记(6) :在Web Service中使用dOOdad(下)
摘要:上一篇文章讲述了怎样插入一条记录,这里补充一下查询、修改和删除一条记录。相对插入而言,查询、修改和删除容易得多,下面分别给出我的一种实现……
阅读全文
posted @
2006-08-23 21:43
Silent Void
阅读(483)
推荐(0) 编辑
MyGeneration学习笔记(5) :在Web Service中使用dOOdad(中)
摘要:业务实体类中有提供ToXml和FromXml方法,实现了字符串到Datatable的转换,于是决定试下用字符串来保存DataTable信息,然后再在网络中传输字符串,这就是我的原始想法……
阅读全文
posted @
2006-08-23 06:07
Silent Void
阅读(586)
推荐(0) 编辑
MyGeneration学习笔记(4) :在Web Service中使用dOOdad(上)
摘要:dOOdad对Web Service的支持还不够好,dOOdad的核心是DataTable,而在ADO.Net 2.0中的DataTable虽然相对1.x功能扩展了不少,微软鼓吹DataTable功能有多强多强,据说Web Service也都支持返回DataTable,但俺试了一下,发现还存在不少问题。既然Web service不支持DataTable作返回值,所以要将业务实体类内部的信息在网络中传输,就得想其他办法……
阅读全文
posted @
2006-08-23 05:33
Silent Void
阅读(978)
推荐(0) 编辑
MyGeneration学习笔记(3) : dOOdads及生成代码的一些bug
摘要:没有软件会不存在bug,找到一个bug只能说明系统还存在Bug。MyGeneration也不例外,其中存在存在bug;但我们不能因为其有bug而不去用它,这是因噎废食。下面就是我在使用dOOdad时遇到的几个bug及我自己的解决办法……
阅读全文
posted @
2006-08-23 05:17
Silent Void
阅读(1205)
推荐(0) 编辑
MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码
摘要:用MyGeneration(我用的MyGeneration的版本号是1.5.1)的dOOdad模板(使用其自带的模版)来生成代码,及将这些代码加入到项目中
阅读全文
posted @
2006-08-23 00:04
Silent Void
阅读(4024)
推荐(0) 编辑