实体框架中的继承 - 每个具体类的表?

时间:2010-07-30 16:38:21

标签: c# entity-framework-4

我有一个包含文章和博客表的现有数据库。它们有共同的列,如标题,作者在两个表中重复。我想利用实体框架来创建一个内容实体,该实体引入公共属性,以便我可以继承Article和Blog实体中的Content实体。

我可以说好的想法只是在过去10天内获取网站上的所有内容,我不在乎它是博客还是文章。然后,当我需要实际获取一篇文章时,去获取特定的实体。

我已经设置了一个内容实体库并引入了所有常见的博客和目标属性。问题是我试图在内容中说的。我有两个映射到博客表和一个到文章表,EF抱怨它无法解决哪一个转到。我希望添加条件来做到这一点,但如果我添加一个特定于博客的条件(未在我的基类中列出),它抱怨它无法找到映射。

我想我的第一个问题是我是否完全向后看这个以使我的内容实体从文章表和博客表中获取数据?

谢谢

菲尔

编辑:添加模型和数据库模式

alt text alt text

2 个答案:

答案 0 :(得分:0)

我不熟悉Entity,但您可以在数据库中创建一个包含所有常用数据的视图,以及一个将记录标识为博客或文章的额外密钥。

然后,您可以将视图添加到您的实体模型,使用它来实现“从过去10天获取内容”用例,然后当您需要更多详细信息时,使用您添加到视图中的额外键来确定是否你需要去博客或文章实体。我知道这不像你想要的那么干净整洁,但它可以完成这项工作。

答案 1 :(得分:0)

如前所述[{3}},EF ADO.NET Designer中没有TPC继承支持(但最初是EF)。所以必须在xml中手动实现,或者由Code First实现。