2012-06-20 50 views
0

我正在尋找的可能不是現成的。如果有,請讓我知道。WCF數據服務運行時間EDMX

有一個應用程序,角色中的用戶可以動態添加字段。字段用於分類文檔。

對於字符串只有一個單一的(靜態模式)表,其中PK爲rowID,fieldID和非鍵值字段。例如,fieldID = 1是Subject,fieldID = 2是Author。因此可以添加用戶字段而不更改數據庫模式。 Subject =將映射映射到TSQL(fieldID = 1且Value ='映射')

主界面是一個UI,但也有一個按鈕用於將搜索結果(字段行)導出到XML。它很受歡迎,並希望將其擴展到ODATA類型訪問。

想要添加一個WCF數據服務,但暴露具有屬性Subject和Author和....的實體,但它似乎需要更新引用。我需要的是在運行時建立和讀取EDMX,然後將Subject =「Mapping」映射到(fieldID = 1和value =「Mapping」)。

希望我已經描述了我在找什麼。不尋找規定型的答案。更像是這個工具應該讓你在那裏,否則它不會這樣工作。

我對ODATA或WCF數據服務瞭解不多,但如果看起來有一種方法可以使這項工作成爲可能,我將學習它。

感謝

+0

假設您將字段建模爲相關表格(您似乎已經有了這些表格),並且數據庫的架構不會改變,那麼您無需即時生成EDMX。只是針對靜態模式生成它。或者,也許我不明白你想要OData端點的樣子。 –

+0

@VitekKarasMSFT請告訴我更多關於相關表格。我沒有那樣做。 – Paparazzi

+0

對不起,我感到困惑。這並不重要。重要的部分是你說你的數據庫模式是靜態的,那麼爲什麼你認爲你需要動態生成EDMX? –

回答

1

因爲它似乎要求是產生基於數據庫中的字段行動態屬性的實體,這不能用做內置EF或反射提供商(因爲兩者都依賴於具有靜態定義的CLR類型來定義實體)。

解決此問題的方法是實現本博客系列中描述的自定義提供程序:http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx 即爲非類型自定義提供程序。

+0

該文章沒有代碼示例,並且它推薦5.0 SDK,因爲它有代碼示例。但我安裝了5.0 SDK並找不到任何代碼示例。 http://www.microsoft.com/en-us/download/details.aspx?id = 29306 – Paparazzi

+0

自定義提供程序的示例代碼(即使是無類型的)是OData提供程序工具包的一部分,可以從此處下載:http://www.odata.org/ecosystem#samplecode。 –