.net core引用错误的Entity Framework而导致不能正常迁移数据的解决办法

本人刚学.net core,因此在学习过程中会遇上许许多多的坑。每一位初学者最大的问题在于资料的查看不仔细或是没有正确理解里面的内容,导致在后面自己在不知道错误的情况下做了一个小动作。对于完全没有理解的朋友们就会对错误感觉很茫然,不知从何下手,对照所有的对象定义都是正确的,对突然出现的错误产生恐惧和不知所措。这时我第一次写博客,写得不对,希望大家能够谅解!

首先,我把官网文档中重要的一部分接下来,

初学者不能直接去看EF core需要安装哪一个包引用而忽视了这一段重要的话语,在ASP.NET Core引用程序中其实已经包含了EF core不需要再去引用。我就在犯了第一个错误。

之后我去引用之时又犯了第二个错误,就是

引用此包后,我编写完所有的Model,DbContext和连接字符串,执行数据迁移。

 

 看上去似乎是自己定义的对象或是DbSet定义有误,但检查很久都没发现对象有什么问题。后来我再回想自己做了哪些操作,想到了是不是自己的引用除了问题,果然在官网上再看发现自己的错误。然后我删除了Entity Framework引用包,但大家一定认为这样就可以了吧,其实不是。我们卸载了这个引用包,执行语句结果出现这样

,我们的.nuget执行语句还是去寻找了刚才的那个引用包。不管我们将项目清理再重新生成都无济于事。那么就是说缓存还在调用该引用包。

我们首先看下本地.nuget包中有哪些

,有我们已经卸载过的entityframework包。对于初学者可能对于.nuget包里的内容不是很了解,也就不敢随意乱删除,我们先不管这样,也不敢随意删除。我们回到vs2017的界面上找到Nuget设置里

点击清除缓存,但结果是是完全没有删除完毕,我们再去看刚才的文件夹,你就会发现原先的文件夹中少了其他的文件,所以这时我们明白这里就是缓存说存储的地方,但它并没有把我们刚才执行命令所要用到的缓存给清理掉,直接清理是不允许的,因为vs2017还在运行并使用它,因此我们需要关闭vs2017,对于另一个包不知道干什么用的我建议不清理,只清理entityframework包。清理完闭,我们再次打开vs2017.再次执行命令,我们发现已经可以正常迁移并更新了数据库。希望大家在学习的过程中也能更加顺利,更加对于文档能够看得再仔细一点,错了再去看文档再次理解和提升也是好的。希望这个也能帮助到大家,谢谢。

 

posted @ 2019-02-22 13:28  王科慧  阅读(404)  评论(0编辑  收藏  举报