首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分层架构中的实体框架?

分层架构中的实体框架?
EN

Stack Overflow用户
提问于 2009-03-14 17:44:24
回答 3查看 3.4K关注 0票数 4

对WCF和实体框架做了一些实验。几个问题。

选项1:

我理解实体框架类可以通过sp1直接在WCF上序列化。如何,我想知道的场景,如延迟加载,急切加载,上下文管理等是如何处理的,如果他们被处理?

备选方案2:

另一种选择可能是使用EFPocoAdapter,在实体框架的基础上设置一个普通的POCO包装器,而不是直接公开实体框架类。http://code.msdn.microsoft.com/EFPocoAdapter。有人用过这个吗?对这个方向有什么想法吗?

其他想法:

关于ADO.NET数据服务--据我所知,ADO.NET数据服务不能通过远程处理(nettcp绑定)进行配置?它只支持基于http的访问。我们都知道二进制序列化比较慢。

有什么指示或其他选择吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-15 16:33:42

我对此做了一些调查,这是我对此的发现。

ADO.NET数据服务:

您可以使用ADO.NET数据服务(您需要SP1)在线路上公开您的实体框架,代码几乎为零。但据我所知,唯一的限制是,事务是通过HTTP进行的。这意味着,在序列化方面有一个很小的优势(我们都知道二进制序列化更快),但是它的优势是服务实现的速度更快。

我从John [http://twitter.com/John_Papa]那里得到了一个非正式的消息--“在wcf上肯定会有更多的选择。在大多数情况下也会有更多的工作。Astoria很容易暴露实体。在大多数情况下,Perf差异是可以忽略的。”

这些优点--您根本不需要编写任何服务--您只需将验证和安全逻辑与数据服务和实体框架挂钩,我们就完成了。理想的情况是在http上使用以数据为中心的服务,比如拥有silverlight客户端,或者在http上使用winform/wpf前端。

在WCF上公开实体框架:

使用SP1,在分层体系结构中使用实体框架有很多支持。这包括对急切加载和上下文管理的支持。当然,在这种情况下,我们需要编写服务(以及方法背后的逻辑)。或者,如果我们的实体框架模型与db完全一致,我们可以生成大部分服务,其中包括我们需要的方法。

建议您阅读此http://msdn.microsoft.com/en-us/magazine/cc700340.aspx

另一种选择可能是使用EFPocoAdapter,在dtos的实体框架之上有一个普通的POCO包装器,而不是直接公开实体框架类。现在,它是实体框架http://code.msdn.microsoft.com/EFPocoAdapter下一个版本的指南针项目。

票数 4
EN

Stack Overflow用户

发布于 2009-03-14 19:19:29

在WCF上公开EF类是个非常糟糕的主意。微软犯了一些严重的错误,使其无法成为一个有用的方案。它们已经将实体公开为数据控件,但也公开了实体的基类,对于反向链接,则公开了链接的两个副本。

另一方面,ADO.NET数据服务似乎有一些魔力,可以让接近它的东西工作。阅读本月Magazine中的SilverLight文章,了解使用ADO.NET数据服务的客户端示例。

票数 2
EN

Stack Overflow用户

发布于 2009-05-06 23:23:58

不是为了提个旧职位但是..。在处理完全相同的问题时,我发现了这个列表。我们有WCF服务和实体框架域模型。最后,我在丹尼·西蒙斯的工作基础上制作了一个T4,它使用EDMX并构建POCO消息类以及映射entity.ToMessage()和message.ToEntity(对象上下文)的扩展方法。

这似乎是.NET 4.0之前最好的中间方法,因为它不需要像我找到的其他方法(基于PostSharp)那样需要额外的外部项目依赖或循环。

如果其他人认为这种方法会有帮助,请告诉我,我将在我们的googlecode站点上发布到TT文件的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/646358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档