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

带有DataContracts的WCF服务与默认实体框架实体对象,wcf,entity-framework-4,self-tracking-entities,Wcf,Entity Framework 4,Self Tracking Entities,与实体框架实体对象相比,将WCF服务与DataContracts一起使用有哪些优点和缺点 如果我使用ADO.net自跟踪实体生成器生成数据协定,那么我的数据层中的类将被删除 在我的WCF服务中使用它的最佳方式是什么? datacontract生成的ADO.net自跟踪实体生成器是否将通过该服务进行解压缩,或者WCF服务是否仍将使用默认的实体框架对象?这取决于您正在执行的工作类型 使用DTO(数据传输对象),它形成数据契约并与EF模型分离,这将使您能够更好地控制哪些内容被序列化或不序列化。这对于与

与实体框架实体对象相比,将WCF服务与DataContracts一起使用有哪些优点和缺点

如果我使用ADO.net自跟踪实体生成器生成数据协定,那么我的数据层中的类将被删除

在我的WCF服务中使用它的最佳方式是什么?
datacontract生成的ADO.net自跟踪实体生成器是否将通过该服务进行解压缩,或者WCF服务是否仍将使用默认的实体框架对象?

这取决于您正在执行的工作类型

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


在控制和分离方面,将EF与POCO结合使用可能是下一步,它与从last生成的默认数据库相分离。但是,当与Silverlight客户端一起使用时,这两种方法更容易使用,也更灵活。

这取决于您所从事的工作类型

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

在控制和分离方面,将EF与POCO结合使用可能是下一步,它与从last生成的默认数据库相分离。但是,当与Silverlight客户端一起使用时,这两个工具更易于使用,也更灵活。

STE(自跟踪实体)的主要优点是实现了更改集。这意味着您可以从web服务的操作“修改实体”(或整个实体图)返回STE,并调用另一个操作将更新后的STE发回web服务进行处理。EF将自动检测STE中的更改并进行处理

对于实体框架实体,这是不可能的,因为只有当实体附加到
ObjectContext
时,实体才能跟踪更改,但当从web服务操作返回时,实体被分离

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

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

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

对于实体框架实体,这是不可能的,因为只有当实体附加到
ObjectContext
时,实体才能跟踪更改,但当从web服务操作返回时,实体被分离

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


目前,大多数项目都是使用第三类实体开发的。当从
ObjectContext
分离时,POCO也无法跟踪更改。这是STEs的特点。

谢谢Jtew,我会调查POCO,看看这对我是否有效。谢谢Jtew,我会调查POCO,看看这对我是否有效。看起来我必须深入POCO'ALooks,就像我必须深入POCO'A一样