0

我已经从 SQL Server Management Studio 连接到两个 MS SQL Server 实例。然后我使用任务->生成脚本生成了一个包含原始数据库中所有模式和数据的脚本...

之后,我在目标实例上创建具有相同名称的新数据库并运行生成的脚本。因此,我在新实例上获得了原始数据库的完整副本。

但是当我在我的应用程序(ASP.NET MVC + Entity Framework)中更改连接字符串时,我收到一个错误“数据库中已经有一个名为'Categories'的对象”。

我使用 SQL Managment Studio 连接到新的数据库实例,并且看不到任何重复的表以及与原始实例的任何差异。

这种问题的原因是什么?

4

2 回答 2

0

谢谢贾斯汀,但我的模型没有使用 edmx。问题在于实体框架迁移。我的 dbcontext 构造函数中有一行:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<StoreDbContext, Configuration>());

EF 迁移尝试再次创建所有表。

所以我只是删除目标数据库中的所有表,使用新的连接字符串启动应用程序。迁移自动创建了所有表。之后我只是从原始数据库传输数据。

于 2013-10-31T10:32:38.453 回答
0

迁移过程中似乎有问题,在“包管理器控制台”中运行 add-migration 命令:

Add-Migration Initial -IgnoreChanges

做一些更改,然后从“初始”文件更新数据库:

Update-Database -verbose
于 2016-02-09T13:29:48.553 回答