2

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

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

目前有什么好的方法吗?我们是否一直在等待实体框架?

4

2 回答 2

2

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

顺便说一句,我相信 L2E 也是如此。

于 2008-09-25T19:37:10.543 回答
2

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

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

于 2008-10-06T19:38:16.340 回答