2010-03-18 157 views
2

我有一个新的项目,我正在考虑通过WCF服务使用实体框架(v4)。通过WCF提供EF模型的最佳方式是什么?

我想知道哪些人的意见是通过WCF从EF传递数据的最佳方式?我应该使用EF生成的类还是将它们包装到其他类中?消费应用程序将暂时为Web,但未来可能还有其他应用程序(Silverlight,Windows,移动设备等)。

回答

2

对于Silverlight,我会推荐WCF RIA服务。对于Web,您可以使用ADO.NET数据服务。

或者你可以得到一个较低的水平,并写你自己的裸骨头WCF服务和表面简单的POCO作为传输对象。这种方法是代码密集度最高的,并不适合心脏不好的人。

3

在EF 3.5中,我的建议是永远不会返回EF实体。而是返回一个DTO,其属性与EF实体的属性相对应。

在EF 4.0中,他们围绕POCO类和其他事情做了大量工作。我不知道他们做了什么。如果您可以让EF生成不向客户端公开实现依赖关系的实体类,那么您可以返回这些实现依赖关系。从特定于EF的类派生的.NET 3.5类以及基类属性泄露到客户端代理中。你需要这个不会发生。

+0

+1 EF实体包含背叛它的原点的工件。 – DaveB 2010-03-18 16:57:42

+0

@DaveB:即使在.NET 4.0中? – 2010-03-18 17:14:27

+0

我的评论仅适用于EF v1.0!我应该引用这个版本。我没有对v4做任何事情。我会等待最终版本。 – DaveB 2010-03-18 18:10:15

相关问题