我创建了一个实体数据模型并从中生成了一个数据库。
其中一个实体名为Template
。
创建部分类以扩展Template
的功能。
如果我创建一个新类并尝试从Template
派生,我会在实例化时遇到运行时异常:
Mapping and metadata information could not be found for EntityType 'Template001'
。
我该如何解决这个问题?我肯定需要继承EF课程。
修改
似乎不可能。如果是这种情况,那么实现以下要求的最佳方式是:模板实体存储有关每个都有自己的代码要执行的模板的信息。这就是我试图从实体派生出来的原因。
答案 0 :(得分:5)
不支持。您无法从实体派生新类型,而是使用它而不是映射的实体类型来实现持久性。如果您希望从实体派生类,则必须使用映射继承,其中每个子项也映射到数据库。
答案 1 :(得分:4)
为什么首先需要从实体类继承?如果要添加一些简单的行为,请使用partial class。
更新:根据评论,似乎行为可能会随着时间的推移而延长。在这种情况下,我建议使用组合/聚合,而不是继承。让需要扩展的类将实体作为字段。在Raheel的场景中,它将是一个名为TemplateLogic的类,其字段/属性为Template。