ORM框架在删除数据方面一直有个尴尬,那就是无法通过指定条件批量删除数据。于是对于一些删除操作,我们不得不写SQL语句或者执行存储过程。幸运的是C# 3.0所拥有的强大特性足以让我们对LINQ to SQL的功能进行扩展。为了更好地进行项目开发,以及周五的一次技术交流,我为LINQ to SQL扩展了批量删除功能。
异步操作是提高Web应用程序吞吐量的重要手段,关于这方面的话题已经在前文《正确使用异步操作》中解释过了。对于大多数互联网应用来说,性能瓶颈数据库访问。换句话说,一个请求在数据库操作上所花的时间往往是最多的——并且占总时间的90%以上。因此,当Web应用程序的吞吐量因为数据库操作的阻塞而受到影响的话,我们可是尝试使用异步数据库操作来进行优化。那么我们又该如何使用LINQ to SQL进行异步查询呢?
本想写一点有关LINQ to SQL异步调用的话题,但是在这之前我想还是先写一篇文章来阐述一下使用异步操作的一些原则,避免有些朋友误用导致程序性能反而降低。这篇文章会讨论一下在.NET中有关异步操作话题,从理论出发结合实际,以澄清概念及避免误用为目标,并且最后提出常见的异步操作场景和使用案例。这样我们就可以知道什么时候该使用异步操作,什么时候会得不偿失。
目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。
ScottGu同学最近在Blog上发布了一些有关MIX 2008和ASP.NET MVC框架的消息。
在Web程序中上传文件是很常见的需求,最近忽然想到了点这方面的内容,就随便谈谈吧,希望对大家有帮助。
[url]http://www.51cto.com/exp/hhhchina/heroes/index.html[/url]
老赵今天早上大约9点开始被人刷票,当时票数为8700多,但是不久后就发现票数就到达了近万。在发现刷票情况后(当时大约9点半)老赵立即联..
微软近期发布了一个MSDN Code Gallery站点,从名字上就可以看出,这是一个用于存放代码的“展馆”。
MSDN Code Gallery和CodePlex的区别在于,前者用于存放各种大大小小的资源,而后者则是一个项目管理..
明日博客园上海俱乐部活动,老赵有幸受邀与大家一起讨论一下ASP.NET方面的问题。经过了一段时间的思考,我准备这次的主题定为“ASP.NET WebForms、MVC与MVP的演变与结合”。
前一段时间在博客园(甚至整..
.NET 3.5中增强了WCF的功能,为它提供了发布RESTful服务和Syndication(即常见的RSS或Atom)的能力。现在我们开发RESTful的服务或API就非常简单了。同样,无论是分析还是发布RSS也都有了现成的类库(开源产品..
在之前的文章里我们已经谈论了有关URL Rewrite的几个主要的方面。在本系列的最后一篇文章中,我们就来讨论一下有关不同级别URL Rewrite的一些细节与特点。
理论上说,IIS级别的URL Rewrite使用C或C++编写,..
在进行了URL Rewrite之后,经常会遇到的问题就是页面中PostBack的目标地址并非客户端请求的地址,而是URL Rewrite之后的地址。以上一篇文章中的重写为例:
<rewriter>
<rewrite url="^/User/(\d..
可能已经没有人会使用上一篇文章中的方法进行URL Rewrite了,因为提供URL Rewrite的组件早已铺天盖地了。
ASP.NET级别的URL Rewrite组件的原理很简单,其实只是监听BeginRequest事件,并且根据配置来决定目..
之前觉得这个话题已经被谈滥了。URL Rewrite早已经被广大开发人员所接受,网上关于URL Rewrite的组件和文章也层出不穷,但是总是让我感觉意犹未尽,于是最终还是忍不住提笔写了这系列文章。这些文章不会谈论URL R..
User Control大家肯定不会陌生,在使用ASP.NET的过程中,除了aspx页面,最常见的就莫过于ascx了。ascx是一个有独立逻辑的组件,提供了强大的复用特性,合理使用,能够大大提高开发效率。通过User Control直接生成..
四、生成复杂的ID难以使用JavaScript操作
我在上一篇文章的最后提到了,虽然使用WebForms我们能够对于页面上的HTML属性和样式等进行自由的定制和控制,但是有一点是毋庸置疑的,我们没有办法(正常的办法吧..
没想到我的文章引起了那么大的反应,看来最近MVC框架的确是一个热门话题。正如上一篇文章开始所说的,我不会对MVC框架有任何“贬低”,任何技术滥用都有问题,所以任何东西都会有所谓的Best Practice(去MSDN的Pa..
记得数年前,当ASP.NET刚出现时,天下间Web开发框架中似乎出现了一个“巨人”,WebForms这种似乎人人都能掌握的开发框架几乎瞬间流行起来。如果谁还在用传统ASP这种控制与表现混合的开发方式,似乎立即变得低俗了..
在《在Linq to Sql中管理并发更新时的冲突(2):引发更新冲突》一文中,我们描述了Linq to Sql检测在更新时是否产生了冲突的基本方法:将该记录每个字段原来的值和更新时的值进行对比,如果稍有不同则意味着记录..
查询计划
Sql Server在执行一条查询语句之前都对对它进行“编译”并生成“查询计划”,查询计划告诉Sql Server的查询引擎应该用什么方式进行工作。Sql Server会根据当前它可以收集到的各种信息(例如内存大..