首页 文章

从C#中的实体框架生成的类派生

提问于
浏览
5

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

其中一个实体称为 Template .

创建部分类来扩展 Template 的功能正常 .

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

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

我该如何解决这个问题?我肯定需要继承EF类 .

EDIT

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

2 回答

  • 5

    为什么首先需要继承实体类?如果要添加一些简单的行为,请使用partial class .

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

  • 4

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

相关问题