0

我不确定这是否可以实现,因此我想请教你们!

假设我有一个现有的表,其中包含一个书籍登记册,其中包含所有甚至写过的书籍。我们可以称这个表为“Books”(实体),它有BookID、BookTitle和BookDescription。我正在使用 EF 和数据库优先方法,并使用 DbContext。

结构非常简单,但知道我想卖书并想利用我现有的 Books 表寄存器,用户可以在我的主页上浏览。我也有一些二手书要出售,我想以某种方式连接到我的 Books 表。

在我的世界里,我想要一个像名为“Book”的基类和派生类“NewBook”和“UsedBook”的结构,但我完全不知道如何使用现有的 Books 表和实体框架来实现这一点。

4

1 回答 1

0

我不得不在项目中的 EF 中实现继承,并且我发现在首先将子类创建为数据库中的表时很难做到。相反,我将子类作为实体添加到 EF 模型中,生成数据库脚本,然后运行脚本将表添加到数据库中。以下是我采取的步骤:

  1. 在 EF 模型图 .edmx 文件中,右键单击背景并添加新...实体。
  2. 输入实体名称(在您的示例 UsedBook 中)并选择基本类型为 Book。
  3. 单击确定后,您可以将属性添加到 UsedBook。
  4. 再次右键单击背景并选择从模型生成数据库。这将生成一个 SQL 文件。
  5. 现在,如果您在现有数据库中有数据,您不想执行整个脚本,因为它会删除您现有的表。相反,查找新表 UsedBook 的所有引用(将在数据库中称为 Books_UsedBook)并执行这些行。您可能需要手动更改对 Book 表的引用,因为它的复数形式可能不正确。只需确保脚本中的 Book 表名与您的数据库中的表名匹配即可。
  6. 执行脚本后,返回您的 .edmx 模型,右键单击背景,然后选择验证。你不应该在这里有任何错误。
  7. 在您的数据库中,您现在将拥有一个 Books_UsedBook 类,其中 BookId 列引用 Books 表中的 BookId 列。

希望这可以帮助!

于 2013-05-21T20:38:48.183 回答