WCF 数据服务或实体框架

Posted

技术标签:

【中文标题】WCF 数据服务或实体框架【英文标题】:WCF Data Services or Entity Framework 【发布时间】:2011-06-13 23:45:38 【问题描述】:

我必须开发一个应用程序来在数据库中存储一些平面文件。控制台应用程序和 SQL Server 将在同一台机器上,这两个选项中哪个最好?

创建 WCF 数据服务并从控制台应用程序使用它 直接使用控制台应用程序中的实体框架实体

一般来说,什么时候使用 更好?

谢谢!

【问题讨论】:

是的,这是苹果和橙子,每个解决不同的问题。如果只有 1 个应用程序将 WCF 数据服务用于 ETL 数据,那么 WCF 数据服务似乎不太合适。 【参考方案1】:

这是两种完全不同的技术:

Entity Framework 是一个 OR 映射器,可让您的数据库访问更轻松;您可以将其与例如NHibernate、Linq-to-SQL、Subsonic、Genome 或其他 OR 映射器

WCF 数据服务是一种通过 HTTP/REST 向外界公开数据模型的方法;将此与旧版 ASMX Web 服务、纯 WCF 服务、其他服务技术进行比较

您无法比较这两者 - 它们是完全不同的野兽,在许多解决方案中,它们将协同工作 - 一个无法替代另一个。

如果您有一个需要从数据库读取数据的控制台应用程序,您可以直接使用实体框架 - 在这种情况下,您的控制台应用程序必须直接连接到数据库,并且它与实体框架技术相关联.

使用 WCF 数据服务公开数据的选项增加了另一层 - 您的控制台应用程序不会直接访问数据,而只是调用 WCF 数据服务。现在您基本上有两个部分:作为客户端的控制台应用程序,以及将提供数据的某种服务应用程序。在这种情况下,您的客户不需要了解有关实体框架或类似的任何信息 - 您也可以轻松添加第二个客户端,例如一个网络应用程序。但是提供数据的服务应用程序仍然需要能够使用实体框架直接连接到数据库。

所以最后,您并没有真正用 WCF 数据服务替换实体框架 - 您只是添加了另一层间接,但最终,要获取数据,您仍然需要某种数据访问技术(如实体框架)。

【讨论】:

以上是关于WCF 数据服务或实体框架的主要内容,如果未能解决你的问题,请参考以下文章

在 WCF 数据服务应用程序中迁移实体框架 6 和 VS2013 后无法更新或删除

如何处理循环引用 - 或 - 在 WCF 服务中返回的第一级子项下的引用暴露实体框架数据模型?

在我的wcf服务中用实体框架实现的WCF服务的性能?

WCF 数据服务,序列化实体框架部分类的附加属性

WCF 和 IIS 的实体框架问题

使用 WCF 和实体框架的客户端服务器