Asp.net mvc Can';t首先用EF代码更新数据库

Asp.net mvc Can';t首先用EF代码更新数据库,asp.net-mvc,ef-code-first,entity-framework-migrations,Asp.net Mvc,Ef Code First,Entity Framework Migrations,我使用的是EF代码优先迁移。我在模型中添加了一个新属性,但它在数据库中不作为列反映 配置.cs public Configuration() { AutomaticMigrationsEnabled = true; } Global.asax.cs Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, DbMigrationsConfiguration<DbContext>>(

我使用的是EF代码优先迁移。我在模型中添加了一个新属性,但它在数据库中不作为列反映

配置.cs

public Configuration()
{
    AutomaticMigrationsEnabled = true;
}
Global.asax.cs

Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbContext, DbMigrationsConfiguration<DbContext>>());

using (var context = new MyDbContext())
{
    context.Database.Initialize(true);
}
Database.SetInitializer(新的MigrateDatabaseToLatestVersion());
使用(var context=new MyDbContext())
{
context.Database.Initialize(true);
}
我已经尝试了
更新数据库
。它说没有挂起的迁移

编辑:

我的EF是一个单独的类库项目。 还有一个类库项目存储所有模型。 主(启动)项目是一个MVC项目

我应该在哪里包括迁移


另外,AddMigrationsInitial总是提供空的Up()和Down()方法。

Verbose可以解决这个问题。在包管理器控制台中运行

Update-Database –Verbose
在执行“更新数据库”命令之前,您是否运行了? addmigrations命令将生成更新数据库所需的迁移脚本

另外,您的数据库中是否有_MigrationsHistory表

您能否将代码更新为指向您的
MyDbContext
而不是基本的
DbContext
?我相信
dbmigerationsconfiguration>()
也应该指向您的dbcontext类型

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, DbMigrationsConfiguration<MyDbContext>>())
Database.SetInitializer(新的MigrateDatabaseToLatestVersion())

这对我来说很有效,首先备份数据库,然后删除project中的
迁移
文件夹,并删除数据库中的
\u迁移历史
表 然后运行这个命令

Enable-Migrations -EnableAutomaticMigrations -Force
然后添加迁移

Add-Migration InitialMigration
最后用

Update-Database

*添加您的新模型:用户模型-id、fname、lname、地址等

*在应用程序数据库上下文中将新模型定义为新的示例集: 公共数据库集用户{get;set;}

*创建迁移:添加迁移YourMigrationName
*更新数据库

我有迁移历史记录。我删除了它并再次运行更新数据库。我还尝试了添加迁移命令,但没有成功。另外,因为我已经启用了AutomaticMigrations,所以我不应该被迫使用添加迁移…对吗?啊,是的,这是正确的。您不需要显式运行addmigrations命令。自动迁移应该与更新数据库一起进行。我被你代码中的一句话弄糊涂了——你的上下文是DbContext还是MyDbContext?它的MyDbContext。现在至少我在Up()和Down()方法中有了代码。但是我被困在“数据库中已经有一个名为”的对象上。尝试添加Migration InitialMigration-ignorechanges并将AutomaticMigrationsEnabled设置为false;我已经尝试添加迁移InitialMigration-IgnoreChanges。然后,我丢失了Up()和Down()方法中的所有代码,并且数据库没有使用新列进行更新。将尝试使用AutomaticMiggerationsEnabled=false;它不起作用。“数据库中已经有一个名为……的对象。”“添加迁移初始迁移-IgnoreChanges”重新标记,但什么也没有发生。@Billa你的确切意思是什么?在我的评论中添加样式?不要在回答部分写评论。