2011-01-23 115 views
5

我不得不開發存儲在數據庫中的一些平面文件在同一臺機器上的應用程序。該控制檯應用程序和SQL Server會,其中這兩個選項是最好的?WCF數據服務或實體框架

  • 創建WCF數據服務,並從控制檯應用程序
  • 使用直接從實體框架的實體控制檯應用程序

一般來說,使用它時,它是更好地使用WCF數據服務或實體框架?

謝謝!

+1

是啊,這是蘋果和橙子和每個解決不同的問題。如果只有一個應用程序將它用於ETL數據,WCF數據服務似乎不太適合。 – 2011-01-23 12:42:32

回答

20

這是兩個完全不同技術:

  • 實體框架是一個OR映射器,使您的數據庫訪問更方便;您可以將其與例如NHibernate,Linq-to-SQL,Subsonic,Genome或其他OR映射程序

  • WCF數據服務是一種通過HTTP/REST向外界展示數據模型的方法;比較這對傳統的ASMX web服務,純WCF服務,其他服務技術

你不能比較兩個 - 他們是完全不同的東西,而且在許多解決方案,他們將共同努力 - 一個不能取代其他。

如果您有一個控制檯應用程序需要從數據庫中讀取數據,您可以直接使用實體框架 - 在這種情況下,您的控制檯應用程序必須與數據庫有直接連接,並且與實體框架技術。

曝光使用WCF數據服務的數據的選項增加了另一層 - 您的控制檯應用程序不直接訪問數據,但它只是調用WCF數據服務。現在,您基本上有兩部分:您的控制檯應用程序作爲客戶端,以及某種可提供數據的服務應用程序。在這種情況下,你的客戶不需要知道任何關於實體框架或類似的東西 - 你也可以很容易地添加第二個客戶端,一個Web應用程序。但是提供數據的服務應用程序仍然需要能夠使用實體框架直接連接到數據庫。因此,最終,你並不是真的用WCF數據服務取代實體框架 - 你只是增加了另一個間接層,但最後,爲了獲得數據,你仍然需要某種數據訪問技術(如實體框架)。

+0

非常感謝!現在很清楚.. – andrew0007 2011-01-23 14:02:23