当你使用Linq to SQL的时候,从Linq框架角度去使用各种Linq实现都支持的东西。例如我就觉得DataContext可有可无的(你可以使用ADO.NET直接修改SqlServer数据库中的数据而不一定一定通过DataContext)。或者,写一个关于将对象更新到数据库的通用接口(也不过4、5个简单方法而已),并实现这个接口(底层虽然还是使用DataContext实现,但是是隐藏了它),这样就为各种Linq实现的切换做好准备。当你站在Linq框架的角度,也就是比Linq to SQL的原型接口的角度,就会更好去使用Linq的通用的那些作用而避免具体Linq实现的“方言”特性。
如果你写代码时几乎不用其考虑Linq to SQL方言,即使将数据库切换为Linq to MYSQL、Linq to Excel、Linq to XML 甚至 Linq to GoogleSearch 也很容易,此时你的Linq代码其实就是BLL同等概念了。