LinqToSql和WCF
时间:2020-03-06 14:44:33 来源:igfitidea点击:
在使用WCF服务与数据库交互的n层应用程序中,在整个应用程序中使用LinqToSql类的最佳实践方法是什么?
我已经看到它做了几种不同的方式,但是它们似乎花了很多时间来创建额外的接口,消息类等,从而减少了不必编写数据访问代码所带来的好处。
目前有什么好方法吗?我们是否还在等待实体框架?
解决方案
LINQ to SQL并不真正适合与分布式应用程序一起使用。更改跟踪和延迟加载是与数据库关联的DataContext的一部分,因此无法跨线传输。我们可以跨线移动L2S实体,对其进行修改,将它们移回并通过将它们重新连接到DataContext来更新数据库,但这非常有限,而且由于永远都不会保留旧值,因此我们将丢失所有并发检查。
顺便说一句,我相信L2E也是如此。
将linq-to-sql对象传递给分布式系统的其他部分肯定不是一个好主意。如果这样做,则将客户与数据库结构耦合,这绝不是一个好主意。顺便说一下,这是/是数据集的主要问题之一。
最好创建自己的类来传输数据对象。这些类当然将作为DataContracts实现。在服务层中,我们将在linq-to-sql对象和数据载体对象的实例之间进行转换。这很繁琐,但它会使服务的客户端与数据库架构脱钩。它还具有使我们更好地控制系统中传递的数据的优势。