Linq to SQL - 撤销所有未提交的改动

摘要: 在某些情况下我们需要撤销/丢弃所有未提交的改动,包括Update, Delete和Insert 本文通过Extension Method将DiscardPendingChanges方法附加到DataContext对象中,并实现清空ChangeSet从而撤销所有未提交的改动。 阅读全文
posted @ 2013-09-26 12:36 Teddy Li 阅读(1947) 评论(0) 推荐(0) 编辑

Mixed Authentication in IIS7

摘要: For Intranet Web Sites, we may need to support both WindowsAuthentication (AD Login) and FormAuthentication. This post introduce how to configurate in IIS7 for mixed authentication. 阅读全文
posted @ 2013-08-30 10:01 Teddy Li 阅读(1469) 评论(0) 推荐(0) 编辑

An Example for Javascript Function Scoping and Closure

摘要: This is a post from my team wiki, which is written in English, will translate to Chinese when I have time. An example of invoking ajax in loop, it's about closure and function scope. 阅读全文
posted @ 2013-08-21 10:34 Teddy Li 阅读(617) 评论(0) 推荐(0) 编辑

TFS - 在某分支中"移除"另一分支带来的代码

摘要: 这是在并行开发中,由于不正确的merge/branch操作,导致分支B中混进了分支A的代码,但是分支B需要在分支A之前发布到生产环境。本文记录了如何将分支A所引进的代码从分支B中移除。 这里需要做两件事,一是将A代码从DEV B中移除,然后按照正常流程提交到QA和Production,二是因为之前移除了A的代码,所以需要重新将A的代码提交。 对于后者,直接重新merge是行不通的,所以采用了两次回滚和merge的方法。 同时本文提供了用HTML5 canvas画版本树的代码。 阅读全文
posted @ 2012-09-07 14:36 Teddy Li 阅读(2390) 评论(0) 推荐(0) 编辑

在ASP.NET Web Form和MVC中防止F5刷新引起的重复提交

摘要: IE中的刷新(Refresh),在FF和Chrome中称为重新载入(Reload),与正常进入页面的区别在于 1. 缓存控制 2. 重复提交上一次的请求. 防止重复提交的方法与PRG(POST-Redirect-GET)模式有一些相似之处,具体来说,当Web服务器识别到一个重复提交的POST请求的时候,重定向到当前页面,然后浏览器以GET的方式请求该页面。 本文提供了在ASP.NET Web Form以及MVC中的实现,并避免了IE8及之前版本IE浏览器中的一个缺陷。 阅读全文
posted @ 2012-03-29 15:59 Teddy Li 阅读(7731) 评论(2) 推荐(2) 编辑

为你的博客添加标题栏图标

摘要: 对于自己掌握源代码的网站,为网页添加标题栏图标的方法一般是在根目录下放一个名为"favicon.ico"的文件。 想cnblog这种站点其实也可以自己添加标题栏图标,只需要在 "设置" - "页首Html代码" 中加入以下代码 阅读全文
posted @ 2012-01-29 12:57 Teddy Li 阅读(621) 评论(1) 推荐(0) 编辑

在SQL Server Management Studio中使用手动提交更改

摘要: 之前一直使用了PL/SQL作为数据库管理工具,所有执行过了的改动都必须按提交按钮才commit到数据库,后来用SQL Server Management Studio,都是自动提交的方式,特别是在生产环境上,总是如履薄冰,担心出什么乱子。 在SQL Server Management Studio中禁用自动提交的设置如下: 在选项-查询执行-sql server-ANSI中将"SET_IMPLICIT_TRANSACTIONS"勾上 阅读全文
posted @ 2012-01-17 09:36 Teddy Li 阅读(3507) 评论(2) 推荐(0) 编辑

面向对象的Javascript - 通过原型(Prototype)实现继承

摘要: Prototype(原型)是Javascript中实现对象继承的基础方式。 绝大多数的javascript对象都有原型对象,这些原型对象的应用形成一条“原型链”,链的尽头是Object.prototype。当调用对象的某属性或方法时,js引擎现在当前对象中查找,找不到的话就会查找其原型对象,如此上溯直到到达Object.prototype。我们所熟知的toString,valueOf等方法正是定义在Object.prototype中,因此所有js对象都通过继承获得这些方法。 在Chrome和Firefox里,原型对象可以通过对象的属性"__proto__"访问,该属性实际上指向对应类型的”prototype”属性。 阅读全文
posted @ 2011-12-16 18:45 Teddy Li 阅读(1195) 评论(4) 推荐(2) 编辑

Entity Framework中IQueryable, IEnumerable, IList的区别

摘要: 使用Tracing and Caching Provider Wrappers for Entity Framework追踪Entity Framework生成的SQL语句,并据此分析IQueryable,IEnumerable和IList的区别和使用场景。 阅读全文
posted @ 2011-10-01 00:57 Teddy Li 阅读(7452) 评论(17) 推荐(9) 编辑

理解LINQ预编译查询(Compiled LINQ)

摘要: 从上一篇NHibernate与Entity Framework性能比较中可以看出来LINQ预编译查询可以大大提高性能。本文对预编译查询做简单介绍。 阅读全文
posted @ 2011-09-21 17:52 Teddy Li 阅读(3014) 评论(2) 推荐(2) 编辑