2011-05-12 27 views
0

我對所有試圖解決此問題的Web都進行了Google搜索和篩選... 我沒有成功,因此我返回到ADO.NET 4.x繼續我的工作如何使用實體框架打開未知結構數據庫4

我有一個程序,用戶可以在其中選擇並打開任何數據庫... 選擇數據庫的表,視圖,存儲過程等在樹中顯示,因此用戶可以單擊節點和查看/編輯網格中的數據。

與EF4(DB首先,模型首先,代碼首先,等等)掙扎了幾下,我不能找到一種方法,在運行時生成用戶選擇數據庫中的實體...

任何人都可以提供售後服務額外的信息...也許樣本代碼?

+0

如果您不針對特定數據結構編寫代碼,Entity Framework的優勢幾乎沒有意義。它是一個對象關係映射器,你似乎只對這個關係部分感興趣。 – StriplingWarrior 2011-05-17 16:30:43

回答

0

你不能。 實體框架(與任何其他ORM一樣)用於將數據模型映射到邏輯模型。如果沒有映射(也沒有邏輯模型),那麼就沒有實體框架。

ADO是在這種情況下去的路。

經過一番質疑,有可能做到這一點,但它涉及到瘋狂的步驟。

要做到這一點,您必須從查詢master數據庫中獲得的信息生成edmx xml,從此xml在運行時生成類(數據上下文和實體),將它們加載到您的AppDomain通過代碼dom,然後你可以通過Entity Framework使用這個動態生成的數據上下文。

在一句話中:對於這種情況,您的數據模型完全未知且不斷變化,請堅持使用ADO.NET。它是爲此量身定做的。

+0

嗨Guillaume ... 聽取微軟市場營銷EF是未來...... 對於我做的測試......對於架構新(ObjectContext + ObjectSets)...和概念模型...我是說服了這個! 如果你深入瞭解代碼和框架,你可以看到,過多的確定工作,你可以在運行時產生很多東西,並使其工作... 嗯,我不想鬆散這次,並製作了一個非標準庫然後發現微軟支持這... 這是一個非常重要的事情......也許這是很多無證...我希望有一些EF-Guru可以啓發我們所有關於此...... Thanx。 〜ZEE〜 – ZEE 2011-05-12 14:59:06

+0

事情是,你想要做的是與EF(和基於ORM的技術)的精神背道而馳。 ORM是一種將邏輯域作爲工作核心的方式。你想要做的是讓你的數據驅動你的模型。 – 2011-05-17 16:15:36

+0

有時候我們不知道模型,我們想要工作數據......像** DB編輯器**這樣的東西必須以這種方式工作。對於.net4 dynamica對象,這看起來也是可能的......讀取數據庫中的模式並使用獲得的信息生成動態對象。我會繼續關注這個...我試圖離開... ORM的更實用,並且對象關係的自然數據更好。 – ZEE 2012-06-08 14:02:09

相關問題