当我执行"从模型"生成数据库时,实体框架4会更改我的表名称。

时间:2012-01-19 14:35:32

标签: entity-framework-4

在开始真正的工作之前,我正在用EF4和继承做一些简单的事情。我尝试了很多方法,我无法解决这个问题。

我有两张桌子:

  • reporting_Items(ItemId等)
  • reporting_DataItems(ItemId等)

由于编码约定,我需要在数据库表中保留前缀。

然后我希望使用名称为Item和DataItem的maped实体,并且DataItem继承自Items。

我做了数据库优先并创建了表,但我从reporting_DataItems中删除了ItemId键。

然后我从数据库中生成了模型。它创建了实体:

  • reporting_Item
  • reporting_DataItems

我分别重命名为Item和DataItem。然后我创建了DataItem和Item之间的继承关系。

所以到目前为止,我有一些名为I want的实体和名为I want的表,以及继承。 问题是,如果现在我从Model运行Generate Database,它将删除所有表并使用以下名称创建它们:

  • 产品
  • Items_DataItem

有没有办法取得我想做的事情?提前致谢

1 个答案:

答案 0 :(得分:2)

您可以先使用任一数据库(首先使用数据库或模型生成模型(从模型生成数据库)。不支持组合它们,因为当您首先使用模型时它不会使用有关原始数据库的信息。它使用自己的数据库。命名表的约定,它期望你将使用新的表名而不是旧的。可以改变约定,但这意味着改变用于生成SQL的.tt模板。

因此,如果您有现有数据库并且想要使用它,请不要使用模型生成数据库,因为此工具不适合您的场景。