2012-09-18 49 views
0

我開始編寫一個項目,並且第一次使用ASP.NET MVC和Entity Framework(因爲現在我已經使用了PHP大約5年)。使用實體框架的自定義字段5

我得到類別和帖子,每個類別必須有其自己的獨特過濾器,可以是字符串或布爾(我會通過文本框或複選框)。設計實體時我開始感到困惑。

我使用的是代碼優先的方法,但不知道如何在實體框架中設置自定義字段。如果我在PHP和純SQL中設計它,我認爲爲了保持它的良好運行,我會動態創建額外的列(例如「filter_1」,「filter_2」),然後創建映射表,其中包含字段的描述,類型等,我沒有弄清楚這種實現在EF中是否可行。

我想過一些選項: - 我可以在創建過濾器和過濾器值表以及創建過帳時將過濾器值添加到該表中,使用多對多關係創建過濾器。關於它的主要con是,他的表現 - 我會最有可能有40K +行,肯定超過20個自定義過濾器......所以搜索和數據提取將是太慢了...... - 我想到了序列化過濾值成某種形式的內容,例如成字節數組,然後只desterilize - 但問題是,我將無法內搜索... - 我可以以創建使用傳統ADO.NET方式我最初的想法(當談論PHP,我已經描述 - 使用「filter_N」列),但會創建EF太多亂七八糟......

有任何其他的方式來實現我的目標(創建自定義過濾器)?任何使用EF創建自定義字段的方法?

感謝您的幫助!

+0

實體框架不適用於您希望在運行時更改數據庫的情況。如果您想使用EF,您應該爲過濾器和值分開表格,並正確設置索引以解決性能問題。當你正確設置索引時,40k行並不是什麼大不了的事。 –

+0

謝謝!我想我會遵循您的建議並使用模型創建它。 你能將你的評論標記爲答案嗎? –

回答

0

我不知道在實體框架中執行此操作的好方法。如果你真的想使用實體框架,我相信你可以設計你的數據庫表,這樣你就不必在飛行中創建額外的列。你可以有單獨的表來保存過濾器並將它們關聯到類別。