老赵点滴


  先做人,再做技术人员,最后做程序员。
  我的理想:“让外国人看中国人写的技术书籍和文章”。Try as I might
posts - 287, comments - 10545, trackbacks - 137, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

LINQ to SQL

     摘要: ORM框架在删除数据方面一直有个尴尬,那就是无法通过指定条件批量删除数据。于是对于一些删除操作,我们不得不写SQL语句或者执行存储过程。幸运的是C# 3.0所拥有的强大特性足以让我们对LINQ to SQL的功能进行扩展。为了更好地进行项目开发,以及周五的一次技术交流,我为LINQ to SQL扩展了批量删除功能。  阅读全文

posted @ 2008-03-05 13:01 Jeffrey Zhao 阅读(14391) | 评论 (62)  编辑 |

     摘要: 异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前文《正确使用异步操作》中解释过了。对于大多数互联网应用来说,性能瓶颈数据库访问。换句话说,一个请求在数据库操作上所花的时间往往是最多的——并且占总时间的90%以上。因此,当Web应用程序的吞吐量因为数据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化。那么我们又该如何使用LINQ to SQL进行异步查询呢?  阅读全文

posted @ 2008-03-01 01:51 Jeffrey Zhao 阅读(13696) | 评论 (32)  编辑 |

     摘要: 目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。  阅读全文

posted @ 2008-02-19 03:02 Jeffrey Zhao 阅读(11884) | 评论 (50)  编辑 |

     摘要: 在《在Linq to Sql中管理并发更新时的冲突(2):引发更新冲突》一文中,我们描述了Linq to Sql检测在更新时是否产生了冲突的基本方法:将该记录每个字段原来的值和更新时的值进行对比,如果稍有不同则意味着记录被修改过,因此产生了更新冲突。不过您是否有这样的感觉,这种方法实在累赘了一些?因此Linq to Sql提供了另外一种检测并发更新冲突的方式:使用记录的时间戳。这并不是Linq to Sql特有的功能,如果您了解其他的ORM框架的话,就会发现诸如Hibernate也提供了类似的机制——自然,在使用上不会像Linq to Sql那样方便。  阅读全文

posted @ 2007-11-23 09:21 Jeffrey Zhao 阅读(3472) | 评论 (16)  编辑 |

     摘要: 复用查询计划是Sql Server降低CPU开销,提高性能的一个重要手段。但是Linq to Sql可能无法复用查询计划,这是怎么回事儿呢?  阅读全文

posted @ 2007-11-21 08:43 Jeffrey Zhao 阅读(3433) | 评论 (31)  编辑 |

     摘要: 在上一讲中,我们提到了一些诸如“乐观并发控制”、“悲观并发控制”的概念,以及察看Linq to Sql自动生成sql语句的方法。从这篇文章起我们将继续来查看Linq to Sql在管理并发更新时是如何发现冲突问题的。  阅读全文

posted @ 2007-11-20 19:30 Jeffrey Zhao 阅读(2400) | 评论 (14)  编辑 |

     摘要: 无论与目前的ORM框架相比有没有优势,Linq to Sql在语言和平台的级别上为我们提供了一种新的操作对象和数据的方式,在一定程度上为我们解决了Object != Data的问题。在实际应用中,对于数据库的操作往往有着天生的并发性,因此在更新数据时可能会产生冲突。有些时候,如果没有合理的解决冲突问题,轻则让用户摸不着头脑,重则让系统数据处于一种不一致的状态。Linq to Sql自然考虑到了这一点,本系列讨论的内容,就是在使用Linq to Sql时,如何管理并发更新时产生的冲突。

  本文为这个系列的第一篇,将讨论一些预备知识,它们是进行后续研究的基础。  阅读全文

posted @ 2007-10-30 23:49 Jeffrey Zhao 阅读(3426) | 评论 (24)  编辑 |