我开始真正的工作之前,我正在做一些EF4和继承的简单事情。我尝试了很多方法,但无法解决这个问题。实体框架4更改我的表名当我做“从模型生成数据库”
我有两个表:
- reporting_Items(项目Id等)
- reporting_DataItems(项目Id等)
我需要保持前缀,因为编码约定的数据库表。
然后,我想要名称为Item和DataItem的数据实体,而DataItem继承自Items。
我做了Database First并创建了表格,但我从reporting_DataItems中删除了ItemId键。
然后我从数据库生成模型。它创造了实体:
- reporting_Item
- reporting_DataItems
我分别更名为项目和DataItem的。然后我创建了DataItem和Item之间的继承关系。
因此,到目前为止,我已经有了像我想要的实体以及像我想要的那样命名的实体以及继承。 的问题是,如果我现在运行生成模型数据库将删除所有的表以及与此名称创建它们:
- 项目
- Items_DataItem
有没有什么办法acchieve我想做?提前致谢
谢谢你的回答,什么是我不明白我是做什么,如果我做数据库第一,然后我在模型中做一些调整,例如添加继承关系,然后如果将来我想在数据库中进行修改,我该如何做,而不会丢失继承调整?例如,在“Entity Framework 4.0 Recipes”一书中,为了从数据库相关表中创建类继承,它建议从模型中删除1 .. *关系并添加一个继承关系。 –
我打算接受这个答案作为答案,因为我认为你在做DB First方面是正确的,然后用Model从数据库生成DB。我仍然怀疑要做DB First,调整模型(例如添加继承),然后在db中进行更改。我认为从db更新模型时,模型调整将会丢失,并且可能需要再次完成这些调整。 –
如果您在数据库中进行更改,则必须使用“从数据库更新模型”。这会将更改推送到您的模型中 - 您应该保留模型中的大部分手动编辑,但是您的更改会被覆盖时出现某些情况。 –