2012-01-05 15 views
3

據我所知,Entity框架的要點是簡化和統一數據訪問模型。ORM的要點如果我必須在app.config中爲Oracle定義每個字段。實體框架

我下載了最新的Oracle .net工具(ODAC 11.2版本4),它聲稱EF4支持,並且我試圖導入一些引用光標作爲輸出參數的Oracle存儲過程(通過函數導入)。 當我閱讀有關Oracle's site

的文檔它說我必須在我的app.config中定義ref cursor所返回的每個字段。好吧。這非常愚蠢,並且使整個Entity框架對於Oracle來說都沒有用處。

我錯過了什麼嗎?

+0

我建議你嘗試在ODP的Oracle論壇上提出這個問題。 https://forums.oracle.com/forums/forum.jspa?forumID=146 – APC 2012-01-05 10:52:46

+0

我不確定你是如何調用存儲過程的,但是我使用DevArt dotConnect for Oracle,並且我不需要提供那些web.config中。也許這是一個提供商的具體問題? – 2012-02-09 05:29:01

回答

3

實體框架的整點是爲了簡化和統一的數據訪問模型

在理論上是的。在實踐中,MS的目標是MS工具=它們只支持SQL服務器和SQL Server CE功能。如果其他數據庫提供一些特殊的附加特徵,他們可能是沒有可用的EF或必須以某種方式黑客攻擊。

存儲過程(通過函數導入),其具有一個引用遊標作爲輸出參數。

這就是這種特徵的例子。我不知道從SQL Server中的存儲過程返回數據庫遊標的可能性,而EF實際上並不支持這一點。

它說我必須在我的app.config中定義ref cursor所返回的每個字段。好吧..這是非常愚蠢的,並使整個實體框架對Oracle沒有用處。

但這不是EF問題,而是Oracle構建API如何使用它的問題。恕我直言,整個遊標被ODP.NET隱藏起來,並將正常結果集傳遞給EF。遊標結果的映射在配置中描述。

0

我同意你的100%。 Oracle的EF實施非常缺乏。該映射是愚蠢的,容易出錯和維護的噩夢。至少Oracle應該提供一個生成器工具,用於反編譯SP代碼並創建映射。即使完美的映射是不可能的,這將是一個開始。並且它不支持函數,並且我們的Oracle標準儘可能地支持SP的功能。返回多個refcursors也是不可能的。

相關問題