2009-10-19 14 views
0

我用LINQ到SQL在WPF和ASP.NET MVC項目以下列方式:實體框架和LINQExtender項目有何不同?

  • 創建數據庫
  • 拖動表格到設計
  • 使用生成的類與LINQ

現在我有一個項目,其中的數據源是mix的Web服務,數據庫和XML文件。從我所理解的Entity Framework,我可以創建類似的類,我可以在LINQ到SQL,但他們會纏上了我其他的來源(Web服務,XML文件等),但我不明白怎麼這將與方便的拖放式視覺設計師一起工作,因爲它不知道哪些方法調用我的服務來保存數據等。

所以我還發現LINQExtender,它使您能夠創建數據提供者可以被LINQ使用。從某種意義上說,這與實體框架的作用是一樣的,但它似乎是一種創建實體框架可以使用的類的方法。

像LINQExtender和Entity Framework這樣的工具是否可以創建數據提供者/ ORM層的競爭解決方案,還是他們一起使用的工具?

回答

1

實體框架是一個ORM,專門設計的數據庫實體映射到對象。它僅適用於數據庫。另一方面,LINQExtender並不特定於數據庫,可用於爲任何類型的數據源創建Linq提供程序。

+0

但不事實的EF能夠「針對任何ADO.NET數據提供者」(http://stackoverflow.com/questions/8676/entity-framework-vs-linq-to-sql/8686# 8686)L2S不能,這不會使EF能夠包裝任何可以通過ADO.NET數據提供者訪問的數據源,例如XML,CSV或任何Web服務(http://msdn.microsoft.com/en-us/magazine/cc301611.aspx) – 2009-10-19 10:16:44

+0

那麼,ADO.NET可以訪問類似數據庫的數據源......可能包括XML或Web服務,如果存在這些數據源的ADO.NET提供程序,並且如果它們可以作爲關係數據庫進行操作(情況並非總是如此)。 AFAIK,實體框架只能訪問具有關係結構的數據源。 – 2009-10-19 12:37:22

+1

要使Entity Framework能夠訪問數據庫,您需要一個支持3.5功能的ADO.NET Provider - 即特定的EF支持。你不能只是扔CSV。 – DamienG 2009-10-19 15:29:37