2011-07-10 40 views
0

OK,動態自定義屬性與實體框架

這可能不是簡單的,但我想我會扔在那裏:

我得到了EF與部分延伸出的模型首先實體的想法類添加數據註解元素的財產以後這樣的:

[Required] 
string MyString {get;set;} 

但是,如果我在一個多租戶系統,我可能要自定義其傳遞給最終客戶時,我可以動態地設置字段實際需要取決於客戶端的註釋已經配置了設置,例如在另一個表中說?

更新:在多租戶系統中,至少有兩個數據庫。一個存儲系統配置信息。另外每個客戶都有自己的個人數據庫。系統數據庫控制路由並從那裏選擇適當的客戶數據庫。

任何人如何做到這一點的見解或想法將是偉大的!

感謝, 布倫特

回答

1

如果您使用EF 4.1,您可以創建不同的DbContext,引用相同的實體,但使用Fluent Api提供不同的映射。

以下是描述使用api的視頻的鏈接。 Fluent Api

注意:您的數據庫需要設置以適應所有不同的配置。例如,如果在一個上下文中,「FirstName」是必需的,而在另一個上下文中,它不是,您的數據庫應該允許NULL以應對這兩種情況。

+0

我想你可能已經指出我在正確的方向。找到兩個鏈接,我正在看:http://www.nikhilk.net/RIA-Services-Fluent-Metadata-API.aspx和http://fluentmetadata.codeplex.com/。一旦我潛入其中,我會發布更多信息。 –

+0

太好了,我希望它有幫助。 –

+0

它讓我看着正確的方向。我接觸到了Julie Lerman和Nikhil Kothari,他們將其中的一個例子放在一起。 MSFT從來沒有結束使用它,它看起來像我的使用這樣的東西是相當鏡頭,除非我自己建立一些東西。 –

0

不能動態地更改屬性。

其中一種選擇是動態創建類型,可能會繼承一些實際使用的類(或實現接口)。雖然我不確定這是否適用於EF。

另一種可能是,如果EF有另一種方式可以告訴它同樣的事情,但我不知道EF很多,所以我不知道這樣的事情是否存在。