2011-11-19 109 views
0

到目前爲止我所看到的WCF數據服務在使用時與EF結合使用時非常容易設置。WCF數據服務和動態變化的數據集

這就是我剛剛開箱後的情況,但我還需要EF模型在運行時更改的功能。

我正在構建一個應用程序,應用程序用戶將能夠指定數據庫結構,然後開始填充它...然後使用一些巧妙的基於規則的欺騙技術,使用MVC生成所需的相關UI組件。

因此,例如,用戶將得到一個「創建新對象」按鈕,這將讓他們指定字段名稱。

該部分完成後,用戶提交該部分,並在db中生成一個新表。 從那裏生成UI組件,允許在應用程序內管理該表。

當然,問題是無需重新編譯後端數據服務即可將該新表插入到EF模型中。

這個概念是,它建立了數據庫和管理其各個部分所需的頁面(這裏有一個更大的圖片,但我不想通過試圖解釋這一切來混淆事項)。

我在想EF可能不是正確的工具,因爲它需要一個強類型的實體集才能工作......在這種情況下可能無法實現。

我與通過這個服務動態物體的想法玩弄...(比如輸入的東西的對象:動態)

+0

'我想EF可能不是正確的工具使用目前我也是這樣 –

回答

1

我建議不僅是實體框架是爲這個不正確的,但也是一個關係數據庫。文檔數據庫或鍵值存儲可能會比嘗試按需創建表將其推入關係結構更合適。

+0

有問題的數據是最確定的關係數據......給這個上下文我很喜歡構建工作流對未知類型的對象進行操作的引擎...當用戶定義流程/流程時,它們還定義它們在其上運行的對象。 – War

1

WCF數據服務可以在沒有實體框架的情況下使用。使用「反射提供程序」或您必須實現的自定義提供程序(Reflection提供程序要求您具有實際的.NET類,而您不需要)。

基本上,您將實現DataService類和IServiceProvider接口,它將提供IDataServiceQueryProvider,IDataServiceMetadataProvider和IDataServiceUpdateProvider的實例。這可能涉及很多工作,所以請確保你確實想要這樣做。

查看http://msdn.microsoft.com/en-us/library/ee960143.aspx瞭解更多信息。

+0

這看起來很複雜...我會通讀它並回復你:) – War

+0

這是非常複雜的,但它可以完成。我自己做過,但對於現有的.NET類,動態模式將是一個真正的巨大挑戰。但從你的無償項目來看,你並不害怕這一點。 –

+0

EF DataContext是否實現所有這些接口? ...沉重! ...雖然可以......但我有興趣瞭解您的解決方案如何工作? – War