2009-01-24 132 views
7

我想使用實體框架。不過,我也有要求允許我的用戶在我們的系統中定義自定義字段。我想仍然使用實體框架,而不是使用具有散列表屬性的分部類。實體框架:在運行時添加屬性/實體

下面是我想到的解決方案,但它並不簡單,所以我想看看是否有更好的方法。

我現在的想法是有一個ModelManager對象,該對象可以在適當的表上創建一列,修改EDM文件並使用edmgen.exe編譯文件。這將不得不在與應用程序不同的進程和/或應用程序域中發生,因爲應用程序會引用生成的程序集。當應用程序重新啓動時,它將有權訪問新添加的字段。

這是用Entity Framework做到這一點的唯一方法嗎?謝謝你的時間。

回答

1

在閱讀Entity Framework團隊和Julie Lerman的一些博客文章之後,聽起來他們正在考慮讓下一個版本更容易。就我所知,這意味着我在問題中提到的方式是動態添加字段到實體框架的最佳方式。

+0

您可以添加這些條目的鏈接嗎? – Guillaume 2012-08-08 13:19:26

0

您將最終花費更多時間試圖使此解決方案工作,然後使用HashTables完成整個項目。我真的不認爲實體框架是適合這種情況的原因是,

  1. 你的代碼不會被編程以使用產生
  2. 新的領域,你將不得不應對卸載從應用程序域當前裝配,並重新載入新
  3. 你真的設置你的自我的失敗

很抱歉,但目前只有那些不容易應用到某些框架的一些問題。

+0

我很感謝你的回答。我知道這很困難,但我想堅持使用實體框架。我所說的解決方案確實有效,因爲我已經測試過了。我編輯了這個問題來反映這一點。我想知道在實體框架中是否有另一種方法來實現此功能 – CoderGuy 2009-01-25 00:02:11

0

我只是扔了這一點那裏...

你可以使用擴展方法和/或部分類,讓對象接受的自定義字段數據的鍵/值對的字典。然後在保存事件之後,您可以使用直接的SQL插入/更新數據。

相關問題