我在移动中有新项目,我正在考虑使用实体框架(v4)而不是WCF服务。
我想知道人们对通过WCF从EF提供数据的最佳方式的看法是什么?我应该使用EF生成的类还是将它们包装成其他类?
消费应用程序目前将是web,但未来可能是其他应用程序(Silverlight,Windows,移动等)。
答案 0 :(得分:3)
在EF 3.5中,我的建议是永远不会返回EF实体。改为返回DTO,其属性与EF实体的属性相对应。
在EF 4.0中,他们围绕POCO课程和其他事情做了很多工作。我不能快速完成他们的工作。如果您可以获得EF来生成不向客户端公开实现依赖性的实体类,那么您可以返回它们。 .NET 3.5类派生自EF特定的类,并且基类属性泄露到客户端代理中。你不需要这样做。
答案 1 :(得分:2)
对于Silverlight,我会推荐WCF RIA服务。对于Web,您可以使用ADO.NET数据服务。
或者您可以获得更低的级别并编写自己的裸骨WCF服务并将简单的POCO表面作为传输对象。这种方法是代码最密集的,不适合胆小的人。