2011-06-07 37 views
2

我正在研究如何爲我們的數據庫設置OData接口。作爲開始,我希望能夠將數據從我們的數據庫中提取/查詢到Excel中。最終,我希望讓Excel運行查詢並通過HTTP從遠程客戶端提取數據,包括身份驗證等。服務/消費OData接口的實體框架的替代方案

我已經使用ADO.NET實體數據模型設置了一個工作(搖搖晃晃)的原型Visual Studio中的嚮導以及VSTO創建一個測試Excel工作表,其中包含一個用於從該ADO.NET界面提取的按鈕。到目前爲止,這工作正常,我可以使用Linq通過由ADO.NET EDM嚮導創建的實體/對象來查詢數據庫。

但是,我已經開始遇到這種方法的一些問題。我一直在發現實體框架很難配合(事實上,也很難研究解決方案,因爲有很多關於它和它的舊版本的瑕疵)。一個例子是我無法弄清楚如何設置嚮導爲我的模式生成的DataServiceContext對象上的SQL命令超時(而不是HTTP請求超時),但這不是我的問題的關鍵。

我真正的問題是,如果我想使用OData作爲我的接口標準,我堅持使用實體框架嗎?是否有任何其他解決方案(最好是開放源代碼)可以設置,服務和使用OData接口,並且比實體框架更容易使用且更少膨脹?我已經看到提及NHibernate作爲替代方案,但是我見過的大多數比較線程都是幾年前的。現在有沒有其他的選擇?

非常感謝!

+1

FWIW對於EF 4.1,您對Entity Framework的看法只是**不準確**。我們今天在生產中有一個應用程序,EF提供的體驗是現在最好的ORM體驗之一。我們也成功地使用流利的移動器來維護數據庫的發展。 – 2011-06-07 18:29:34

+0

因爲你讀了一些不好的東西,你不知道如何改變數據庫連接字符串(提示:它嵌入在EF連接字符串中),你對EF感到不滿。所以你決定要轉儲它,但找不到任何替代品? [你甚至看過?](http://www.odata.org/producers) – 2011-06-07 18:34:41

+0

那麼,好吧,看起來我踩了一些腳趾。我的問題不是打擊英孚而是要求替代品。也許我的語言太苛刻了。無論如何,任何人都有任何關於EF替代品的個人經歷/戰爭故事要分享? – Egahn 2011-06-07 19:23:31

回答

2

WCF Data Services提供extensible model for defining custom providers。所以回答你的主要問題是:不,你沒有堅持實體框架。除非你有一些你想用EF解決的問題的實例,否則你的問題大部分都是主觀的和議論的。

+1

...當然,你絕不限於使用WCF數據服務也生產OData。 – 2011-06-07 19:52:22

+0

使用Linq2Sql數據提供者而不是實體框架創傷。爲我的簡單場景工作得更好。謝謝。 – Egahn 2011-06-13 17:49:49

1

我們已經研究了一個完整的發展衝刺(15天)2人使用我們的DTO在我們的服務層嘗試ODATA ... Proto在現實世界中包括與外部服務提供商的後端集成,多個前端連接到同一個後臺,每個上下文具有多個數據庫的實際數據,數百萬條記錄。我們發現唯一可行的解​​決方案是,如果我們使用實體框架...定義自定義提供程序不太容易,如果所有內容都在內存中(非常可擴展),則運行良好,當DTO包含非基本屬性時發生崩潰。需要創建一個新類來實現IQueryable和IQueryProvider接口,但仍然需要在大開關情況下進行映射以根據URL OData查詢調用適當的服務......並且很難將外部提供者數據查詢......

ODATA是非常好的,如果你使用實體框架......

1

我們也不能使用實體框架。由於我們有一個高性能的解決方案,它使用了大量的智能緩存,Entity框架只是跳過它,並直接連接到數據庫服務器,啓動複雜查詢的各種方式只做一個簡單的選擇。它正在加入其他表格,我不需要我調查的請求中的數據。

對我來說實體框架不過是性能殺手。所以+1爲您的問題!