具有实体框架的动态自定义属性

时间:2011-07-10 01:43:54

标签: c# .net entity-framework entity-framework-4

行,

这可能不简单,但我想我会把它扔出去:

我想到了在EF中扩展Model-First实体和部分类来添加数据注释元素,如下所示:

[Required]
string MyString {get;set;}

但是,如果我在多租户系统中我可能想要自定义传递到最终客户端时实际需要哪些字段,我可以根据客户端配置设置的方式动态设置注释,比如另一个例如桌子?

更新:在多租户系统中,至少有两个数据库。存储系统配置信息的一个。此外,每个客户都有自己的个人数据库。系统数据库控制路由并从那里选择适当的客户数据库。

任何有关如何实现这一目标的见解或想法都会很棒!

谢谢, 布伦特

2 个答案:

答案 0 :(得分:0)

您无法动态更改属性。

一种选择是动态创建类型,可能继承您实际使用的某些类(或实现接口)。虽然我不确定这适用于EF。

另一种可能性是如果EF有另一种方式可以告诉它同样的事情,但我不太了解EF,所以我不知道是否存在类似的东西。

答案 1 :(得分:0)

如果您使用的是EF 4.1,您可以创建不同的DbContexts,引用相同的实体,但使用Fluent Api提供不同的映射。

以下是使用api描述视频的链接。 Fluent Api

注意:您需要设置数据库以适应所有不同的配置。例如,如果在一个上下文中,“FirstName”是必需的,而在另一个上下文中则不是,您的db应该允许NULL以便处理这两种情况。

相关问题