【发布时间】:2012-02-10 11:36:38
【问题描述】:
假设我们有以下类:
public class MyEntity
{
public Guid Id { get; set; }
public int EntityType { get; set; }
public List<integer> DataValues { get; set; }
}
表结构是这样的:
MyEntity
Id uniqueidentifier
我想根据 EntityType 将 DataValues 的值存储在不同的表中。例如,MyEntity1 将有两个整数字段,而 MyEntity2 可能有三个整数字段。
MyEntity1
EntityId (FK to MyEntity)
Integer1 int
Integer2 int
MyEntity2
EntityId (FK to MyEntity)
Integer1 int
Integer2 int
Integer3 int
因此,如果我有一个“MyEntity1”类型的实例,我的表将具有以下值:
MyEntity
Id EntityType
---------------------
someguid1 1
MyEntity1
EntityId Integer1 Integer2
------------------------------
someguid1 100 200
在运行时另一个类说 MyEntityDefinition 存储实体存储多少个整数,通过引用这个类我可以知道如果实体是 MyEntity1 类型,那么它包含两个整数值。
我想将此表结构映射到 MyEntity 类,有什么可能的方法吗?
PS:我不想定义类 MyEntity1、MyEntity2。我只是想用表结构(MyEntity、MyEntity1、MyEntity2)来存储数据。
基本上,我正在评估 EF 4.1 的场景,其中实体定义不固定且可由用户更新。有关实体的信息(元数据)存储在其他表中
【问题讨论】:
标签: entity-framework-4.1 ef-code-first metadata dynamic-data