1

我有 2 个项目,一个处理数据访问,它使用实体框架和 POCO 对象来完成。第二个项目引用 DAL 项目来访问数据库。

在我的第二个项目中,我需要从 POCO 类继承并为某些属性和其他内容提供一些默认值,最后我想将此类或“其基类”添加到实体框架的对象上下文中。

但每次我这样做时,我都会收到一个异常,上面写着“找不到 EntityType 'MyInheritedClass' 的映射和元数​​据信息”

有没有办法在不使用部分类或编辑具有数据访问层的项目的情况下解决这个问题。

谢谢

4

1 回答 1

1

很不幸的是,不行。如果未映射派生类,当前版本的 EF 将无法使用它们。如果您映射一个类,则必须使用该类类型进行数据检索和持久性 - EF 永远不会为您提供非映射派生类型的实例,并且它也不会接受派生类型,因为 EF 不知道该类型。

如果要使用派生类,则必须直接在数据访问库中定义它,并且该类必须是映射继承的一部分(在这种情况下,继承将反映在您的数据库中)。否则,不要使用继承的类并将所有其他属性和逻辑直接移动到原始 POCO(顺便说一句。假定的用法)。

于 2012-04-24T10:34:32.390 回答