代码之家  ›  专栏  ›  技术社区  ›  Switters

LinqToSql和WCF

  •  2
  • Switters  · 技术社区  · 18 年前

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

    我见过它以几种不同的方式运行,但它们似乎耗费了大量的时间来创建额外的接口、消息类等,从而降低了您从无需编写数据访问代码中获得的好处。

    目前有没有一个好办法?我们是否在等待实体框架?

    2 回复  |  直到 18 年前
        1
  •  2
  •   Maurice    18 年前

    LINQtoSQL并不真正适合用于分布式应用程序。更改跟踪和延迟加载是DataContext的一部分,DataContext绑定到数据库,因此不能跨线传输。通过将L2S实体重新附加到DataContext,您可以跨线路移动L2S实体、修改它们、将它们移回并更新数据库,但这是非常有限的,并且您将丢失所有并发性检查,因为旧值从未保留。

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

        2
  •  2
  •   Karl    18 年前

    将LINQtoSQL对象传递给分布式系统的其他部分肯定不是一个好主意。如果您这样做,您将把客户机与数据库的结构结合起来,这绝不是一个好主意。顺便说一下,这是数据集的主要问题之一。

    最好创建自己的类来传输数据对象。当然,这些类将作为数据契约实现。在服务层中,您需要在linq到sql对象和数据载体对象的实例之间进行转换。这很乏味,但它将服务的客户机与数据库模式分离。它还有一个优点,就是可以更好地控制系统中传递的数据。