【发布时间】:2012-04-10 07:04:44
【问题描述】:
我已经创建了一个实体数据模型并从中生成了一个数据库。
其中一个实体称为Template。
创建部分类来扩展Template 的功能可以正常工作。
如果我创建一个新类并尝试从 Template 派生,我会在实例化时遇到运行时异常:
Mapping and metadata information could not be found for EntityType 'Template001'.
我该如何解决这个问题?我肯定需要从 EF 类继承。
编辑
似乎不可能。如果是这种情况,实现以下要求的最佳方式是什么:模板实体存储有关模板的信息,每个模板都有自己的代码要执行。这就是为什么我首先尝试从实体派生。
【问题讨论】:
-
当数据库中只有
Template时,你想到了什么样的“自己的代码”,EF应该如何理解context.Template1s.Load()和context.Template2s.Load()之间的区别?您能否举例说明您打算如何使用它? -
@Attila:谢谢。第一个链接提到 EF 不支持我在部分类中使用的枚举,但删除它也不起作用。到目前为止,似乎除了组合之外没有其他解决方案。有什么想法吗?
-
@RaheelKhan - Sergey Sirotkin 的评论似乎是你最好的选择。
-
@hvd:
context.Template1s.Load永远不需要被调用。如果Template.ClassName == "Template1",则将调用Template1.DoWork()。所以实体本身就知道Template1和Template2之间的区别。
标签: c# entity-framework class inheritance deriving