如何使用Entity Framework Code First更新数据库结构而不丢失所有数据?

时间:2014-11-17 16:33:12

标签: asp.net asp.net-mvc entity-framework asp.net-web-api visual-studio-2013

我需要更改数据库的结构(添加更多列并更改现有的列)(我在"模型"我的WebAPI项目中做了一些更改)。在Visual Studio 2013中有一些简单的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用Entity Framework Migrations并运行update-database命令以生成可以手动运行的T-SQL脚本。这使您可以更好地控制应用于DB的更改。或者,您可以信任EF为您完成此操作。您可以在此处找到所有必需的ef迁移命令:http://msdn.microsoft.com/en-us/data/jj591621.aspx

修改 我提供的链接有一个名为获取SQL脚本的部分。要执行迁移,只需运行以下命令:

Update-Database -Script -SourceMigration: $InitialDatabase -TargetMigration: yourmigrationname

您需要将“yourmigrationname”替换为您的迁移名称,当您运行此迁移时,您将获得一个仅包含SQL脚本的新选项卡。然后,您可以选择保存或运行它。

答案 1 :(得分:0)

既然您评论了我是如何做到的,那么我会将其作为澄清的答案发布。

我在MSSQL服务器中进行了我需要的更改。我可以添加列,更改列名,甚至可以根据需要删除列。

然后在我的模型(.edmx)中删除我刚刚在MSSQL Server中更新的表。一旦我这样做,然后右键单击开放空间并单击“从数据库更新模型”。然后我选择我的桌子或桌子,当"添加"选项卡已选中。我发现这最适合作为"刷新"从来没有真正为我工作过。单击完成后,您的模型现在将使用您更改的表中的最新列进行更新。

希望这会有所帮助。