“update-database”实体框架代码首先不再添加表

时间:2013-07-19 04:44:48

标签: entity-framework entity-framework-5

我首先在我的网站上使用Entity Frame工作5代码。一切都很好,我一直在使用

update-database -verbose

用新数据或新结构和模型更新数据库; out of no update-database已经停止工作,它不再跟踪模型和新表中的更改。

我在互联网上搜索过,有人说我必须删除数据库上下文并重新创建才能使其正常工作。我不能这样做,项目有点大,如果我删除数据库上下文,将会影响超过4k行。

我正在使用visual studio 2012进行第3次更新,因此更新也不是解决方案。

任何建议。

3 个答案:

答案 0 :(得分:2)

正如我告诉你删除数据库上下文并没有解决我的问题。这是我解决问题的方法。我使用sql命令删除了表 _ _MigrationHistory并再次运行update-database -verbose。

显然这个自动创建的表有问题。

答案 1 :(得分:0)

有时他们不会生成,因为他们没有在IdentityModels.cs文件中正确注册。

在上下文创建方法之后

public static ApplicationDbContext Create()
        {
            return new ApplicationDbContext();
        }

添加课程注册

public System.Data.Entity.DbSet<PROJECT.Models.MODELNAME> MODELNAME { get; set; }

构建项目并运行update-database -verbose (-verbose开关将显示所做的更新)

答案 2 :(得分:0)

无论如何我都不是专家,但是我的表不是用PM> Update-Database命令创建的,所以我:

  1. 删除数据库(SQL Server)
  2. 删除了“迁移”文件夹(根目录/迁移)
  3. 右键单击VS2019中SQL Server对象资源管理器中的“数据库”文件夹,手动重新添加数据库;确保数据库名称与“ appsettings.json”中的数据库名称完全相同(例如,“ sqlConnection”:“ server = [MyServerName]; database = [DB NAME]; Integrated Security = true”)< / li>
  4. 在VS2019软件包管理器中运行“添加迁移InitialMigration”和“更新数据库”

您的表和列将出现。这对我有用。再次,我只是个新手而已。