神秘的Entity Framework数据库在哪里?

时间:2014-02-23 23:14:19

标签: c# entity-framework

在我的主项目中,我已经为我的数据库配置了一个连接字符串,如下所示:

<add name="DefaultStoreConnection" "provider....">

在我的基础架构项目中,我有一个带有默认构造函数的数据库上下文,它将连接名称传递给基类:

public DatabaseContext() : base("DefaultStoreConnection") {}

我的应用程序启动后,EF会在应用程序输出文件夹(\ bin)中生成'store.sdf'(SQLCe数据库)。

现在,我想重置所有迁移并从普通数据库开始。我删除了\ bin目录中的'store.sdf',删除了所有迁移文件,然后在包管理器控制台中调用:

Enable-Migrations -Force -ProjectName "MyInfrastructureProject" -StartUpProjectName "MyMainProject".

这很好用,生成了一个新的迁移配置类。然后我跑了:

Add-Migration Initial -ProjectName....

然后出现以下行:

A previous migration called 'Initial' was already applied to the target database

在哪儿?此迁移已应用于何处?我在哪里可以重置这个“迁移”?

3 个答案:

答案 0 :(得分:0)

它应该位于包含所有迁移的文件夹中,但在将其应用于数据库后可能会被删除。您可以在目标数据库的__MigrationHistory表中查看已应用的迁移列表。如果您希望重新填充数据库,请清空__MigrationHistory表。

答案 1 :(得分:0)

我遇到了和你一样的问题。经过一天的谷歌搜索没有一个有用的帮助,我自己发现这是Visual Studio的错误,你的解决方案有多个Mvc项目。添加迁移将检查旧的Mvc项目以创建当前项目的迁移文件(这就是我称之为BUG的原因)。

为避免这种情况,您应该只为每个解决方案使用一个Mvc项目。

答案 2 :(得分:-1)

查看项目的app_data文件夹。