【发布时间】:2016-03-06 09:33:42
【问题描述】:
我有一个基类MyBase,它是我的数据模型的一部分。我在相关程序集中也有从它派生的类MyChild1、MyChild2。
我希望将孩子存储在数据库中并像MyBase 一样加载。此外,我不希望我的实体配置了解有关子类的任何信息。
有什么方法可以强制 EF 忽略该继承和仅限用户的基类?
提前致谢
【问题讨论】:
-
如果您只在 DbContext 中公开
DbSet<MyBase>,这不是已经发生了吗?没试过,但听起来是合乎逻辑的行为 -
改用接口。所以你的表实体将实现 IEntity 或某种。
-
或者您可以在基类的属性中添加 [NotMapped] 属性...
-
MyBase 被用作其他类的集合中的一个项目。因此,EF 尝试将其保存为确切的类型。
-
@Waldemar 有了关系,听起来确实要复杂得多。我不知道是否可以将不同的实体映射到同一张表,但值得一试。否则,也许您应该在数据访问层中使用不同的对象,并将您的业务对象映射进出该层。
标签: c# entity-framework ef-code-first