5

我创建了一个实体数据模型并从中生成了一个数据库。

其中一个实体称为Template

创建部分类以扩展Template工作正常的功能。

如果我创建一个新类并尝试从 派生Template,我会在实例化时得到一个运行时异常:

Mapping and metadata information could not be found for EntityType 'Template001'.

我该如何解决这个问题?我绝对需要从 EF 类继承。

编辑

似乎不可能。如果是这种情况,实现以下要求的最佳方式是什么:模板实体存储有关模板的信息,每个模板都有自己的代码要执行。这就是为什么我首先尝试从实体中派生。

4

2 回答 2

5

不支持。您不能从实体派生新类型并使用它而不是映射的实体类型来进行持久性。如果要从实体派生类,则必须使用映射继承,其中每个子项也映射到数据库。

于 2012-03-26T21:44:07.327 回答
4

为什么首先需要从实体类继承?如果要添加一些简单的行为,请使用部分类。

更新:根据评论,随着时间的推移,行为可能会延长。在这种情况下,我建议使用组合/聚合,而不是继承。让需要扩展的类有一个实体作为字段。在 Raheel 的场景中,它将是一个名为 TemplateLogic 的类,其字段/属性为 Template 类型。

于 2012-03-26T21:52:16.157 回答