1

将 WCF 服务与 DataContracts VS 实体框架实体对象一起使用的优缺点是什么?

如果我使用 ADO.net Self Tracking Entity Generator 生成数据合同,我的数据层中的类。

在我的 WCF 服务中使用它的最佳方式是什么?datacontract 生成的 ADO.net Self Tracking Entity Generator 将通过服务交换还是 WCF 服务仍将使用默认的实体框架对象?

4

2 回答 2

1

STE(自我跟踪实体)的主要优点是变更集的实施。这意味着您可以从 Web 服务的操作修改实体(或整个实体图)返回 STE,并调用另一个操作将更新的 STE 发布回 Web 服务进行处理。EF 会自动检测 STE 的变化并进行处理。

这对于 Entity Framework 实体是不可能的,因为它只能在实体附加到ObjectContext但实体在从 Web 服务操作返回时分离时才可以跟踪更改。

STE 的缺点是您必须在服务和所有客户端之间共享定义它们的程序集。STE不适用于可互操作的解决方案。

目前,大多数项目都是使用第三种实体——POCO 开发的。POCO 在从ObjectContext. 这是STE的特点。

于 2011-02-07T18:53:30.837 回答
0

这取决于你在做什么类型的工作。

使用 DTO(数据传输对象)形成您的数据合同并与 EF 模型分开,这将使您能够更好地控制哪些内容被序列化或不被序列化。这对于与多个客户端的兼容性和版本控制很重要。

http://martinfowler.com/eaaCatalog/dataTransferObject.html

在控制和分离方面,将 EF 与 POCO 结合使用可能是接下来使用默认数据库生成的表单。然而,当与 Silverlight 客户端一起使用时,这两个更易于使用且更灵活。

于 2011-02-07T18:50:43.473 回答