c# - 分层架构中的 Entity Framework ?

标签 c# .net wcf entity-framework

围绕 WCF 和 Entity Framework 做一些实验。几个问题。

选项 1:

我知道 Entity Framework 类可以直接在 WCF 上序列化,从 sp1 开始。然而,我想知道延迟加载、急切加载、上下文管理等场景是如何处理的,如果它们被处理的话?

选项 2:

另一种选择可能是使用 EFPocoAdapter,在 Entity Framework 之上有一个普通的 POCO 包装器,而不是直接公开 Entity Framework 类。 http://code.msdn.microsoft.com/EFPocoAdapter .有人用过这个吗?在这方面有什么想法吗?

其他想法:

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

任何指针或任何其他选项?

最佳答案

我已经对此进行了一些挖掘,以下是我的发现。

ADO.NET 数据服务:

您可以使用 ADO.NET 数据服务(您需要 SP1)通过网络公开您的 Entity Framework ,代码几乎为零。但据我所知,唯一的限制是交易是通过 HTTP 进行的。这意味着,在序列化方面的开销很小(我们都知道二进制序列化更快),但优势是我们服务的实现速度。

我从 John [ http://twitter.com/John_Papa]关于这一点 - “wcf 肯定有更多选择。在大多数情况下也有更多工作要做。Astoria 很容易公开实体。在大多数情况下性能差异可以忽略不计”

优点 - 您实际上根本不需要编写任何服务 - 您只需将验证和安全逻辑挂接到数据服务和 Entity Framework 周围,我们就完成了。如果您通过 http 使用以数据为中心的服务,这是理想选择 - 在诸如拥有 silverlight 客户端或通过 http 的 winform/wpf 前端等场景中。

通过 WCF 公开 Entity Framework :

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

推荐你阅读这篇http://msdn.microsoft.com/en-us/magazine/cc700340.aspx

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

关于c# - 分层架构中的 Entity Framework ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/646358/

相关文章:

c# - 在 Azure Web 角色中为 WCF 端点添加额外的 SSL 行为

.net - 是否保证多个发送线程的 WCF TCP 消息顺序正确?

android - 什么时候最好不要使用Phonegap?

c# - 如何在c#、mvc中为字符串分配映射路径

c# - 如何从同一中继器项目中的下拉列表中选择的更改事件中获取中继器项目中控件的值?

c# - 根据用户输入更改标签颜色

c# - 在 WPF 中关闭标签的最佳实践

泛型方法的 c# 单元测试

c# - 如何查找/呈现预编译的 Razor View

c# - 构造函数中的抽象类型而不是具体类型