且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

EF-CodeFirst数据库迁移时可能出现的几种错误- The EntityFramework package is not installed on project 'MovieEF'

更新时间:2022-05-27 15:57:02

相关:EF-CodeFirst实现过程+数据库迁移

enable-Migrations -Force
Add-Migration demo
最后再次执行:Update-Database -Force

codefirst在做数据库迁移的可能出现的错误:

** 1. The EntityFramework package is not installed on project 'MovieEF'.**


EF-CodeFirst数据库迁移时可能出现的几种错误- The EntityFramework package is not installed on project 'MovieEF'
The EntityFramework package is not installed on project 'MovieEF'.

我是在手动引入(也就是非Nuget安装)EF的情况下出现这种错误
** Solution:** 通过Nuget方式重新安装EntityFramework
** 2. 不能将值 NULL 插入列 'Genre',表 '2017_03_14MVC+EF.dbo.Movies';列不允许有 Null 值。UPDATE 失败。
语句已终止。 **

EF-CodeFirst数据库迁移时可能出现的几种错误- The EntityFramework package is not installed on project 'MovieEF'
不能将值 NULL 插入列 'Genre',表 '2017_03_14MVC+EF.dbo.Movies';列不允许有 Null 值。UPDATE 失败。 语句已终止

** 原因:** 数据库中已经存在的数据在"Genre"列有NULL值
** Solution: ** 到数据库把这条数据删除或者给个值

EF-CodeFirst数据库迁移时可能出现的几种错误- The EntityFramework package is not installed on project 'MovieEF'
db.PNG

数据库中已经存在XX表

我不知道问题的原因,但是对于比较小的更改可以直接自己写语句,并且知道自己做了哪些更改的情况下:

public override void Up()
        {
            AddColumn("dbo.Teachers", "UserID", c => c.String());
            AddColumn("dbo.Managers", "UserID", c => c.String());
        }
        
        public override void Down()
        {
        }