首页 文章

带有DataContracts的WCF服务VS默认实体框架实体对象

提问于
浏览
1

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

如果我使用ADO.net自我跟踪实体生成器生成数据 Contract 我的数据层中的类 .

在我的WCF服务中使用它的最佳方法是什么? datacontract生成的ADO.net自我跟踪实体生成器是否将通过服务或WCF服务来实现仍将使用默认的Entity框架对象?

2 回答

  • 1

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

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

    STE的缺点是您必须共享在服务和所有客户端之间定义它们的程序集 . STEs are not for interoperable解决方案 .

    目前,大多数项目都是使用第三类实体开发的 - POCOs . 从 ObjectContext 分离时,POCO也无法跟踪更改 . 这是STE的特色 .

  • 0

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

    使用形成数据合约的DTO(数据传输对象)并与EF模型分开,可以让您更好地控制序列化的内容 . 这对于与多个客户端的兼容性和版本控制很重要 .

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

    在控制和分离方面,使用EF和POCO很可能是最后生成的默认数据库 . 但是,当与Silverlight客户端一起使用时,这两个更易于使用且更灵活 .

相关问题