2011-07-10 39 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很多,所以我不知道这样的事情是否存在。