我使用EF代码第一次在2012年VS EF 5我用PM update-database
命令,我有一个简单的种子的方法来填补某些表有样本数据。
我想删除并重新创建我的x.mdb。 更新历史似乎是不同步的。 如果我在上下文中注释掉我所有的DBSets, update-database
,并没有错误运行,但树叶在DB一些表。 正如我在DB没有有价值的数据似乎最简单的重置所有的事情。
我怎样才能做到这一点?
我使用EF代码第一次在2012年VS EF 5我用PM update-database
命令,我有一个简单的种子的方法来填补某些表有样本数据。
我想删除并重新创建我的x.mdb。 更新历史似乎是不同步的。 如果我在上下文中注释掉我所有的DBSets, update-database
,并没有错误运行,但树叶在DB一些表。 正如我在DB没有有价值的数据似乎最简单的重置所有的事情。
我怎样才能做到这一点?
如果我的理解是正确的?
如果你想start clean
:
1) 手动删除你的数据库 -无论它是(我假设你有你的连接进行排序),或清空,但更容易/更安全的是删除它一起-因为有system __MigrationHistory
表-你需要删除了。
2) 删除所有migration files
-这是下Migrations
-并命名为相同的数字等等-将它们全部删除,
3) 重建包含迁移项目 (其余的) -并确保您的项目设置(配置)自动建立(有时可能会产生问题-但不太可能给你),
4)运行Add-Migration Initial
再-再Update-Database
如果你工作的正确方法使用命令来创建迁移Add-Migration "Name_Of_Migration"
那么你可以做下面的得到一个干净的启动 (重置, 丢失数据,当然 ):
Update-database -TargetMigration:0
通常情况下你的数据库是空的,因为现在是执行下来的方法。
Update-database
这将重新创建你的数据库,以你目前的迁移
单排下降,创建并从程序包管理器控制台的后裔。
update-database -TargetMigration:0 | update-database -force
KABOOM。
对于EntityFrameworkCore您可以使用以下命令:
Update-Database -Migration 0
这会从数据库中删除所有迁移。 然后你可以使用:
Remove-Migration
要删除您的迁移。 最后,您可以重新迁移,并将其应用到数据库中。
Add-Migration Initialize
Update-Database
测试在EFCore V2.1.0
怎么样 ..
static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ExampleContext>());
// C
// o
// d
// i
// n
// g
}
我从就捡起的Code First:编程实体框架 ,第28页第一版。
如果您创建数据库下面这个教程: https://msdn.microsoft.com/en-au/data/jj193542.aspx
......那么这可能工作:
.mdf
和.ldf
在项目目录中的文件 采取以下步骤:
Dbset<Item> Items{get;set;}
和在的NuGet控制台运行这些命令 它会删除表(S),在上下文不存在的,但在数据库中已创建