LinqToSql和WCF

时间:2008-09-25 19:10:54

标签: wcf linq-to-sql

在使用WCF服务与数据库交互的n层应用程序中,在整个应用程序中使用LinqToSql类的最佳实践方法是什么?

我已经看到它完成了几种不同的方式,但他们似乎烧了很多时间创建了额外的接口,消息类等,这降低了您不必编写数据访问代码所带来的好处。

目前有好方法吗?我们是否在等待实体框架?

2 个答案:

答案 0 :(得分:2)

LINQ to SQL不适合与分布式应用程序一起使用。更改跟踪和延迟加载是DataContext的一部分,它与数据库绑定,因此无法通过网络传输。您可以通过线路移动L2S实体,修改它们,将它们移回并通过将它们重新连接到DataContext来更新数据库,但这是非常有限的,并且您将丢失所有并发检查,因为旧值永远不会被保留。

BTW我相信L2E也是如此。

答案 1 :(得分:2)

将linq-to-sql对象传递给分布式系统的其他部分当然不是一个好主意。如果你这样做,你会将你的客户端耦合到数据库的结构,这绝不是一个好主意。顺便说一下,这是DataSet的主要问题之一。

最好为数据对象的传输创建自己的类。当然,这些类将作为DataContracts实现。在服务层中,您将在linq-to-sql对象和数据载体对象的实例之间进行转换。这很乏味但它将服务的客户端与数据库模式分离。它还具有更好地控制系统中传递的数据的优势。