AI智能
改变未来

谈谈ASP.NET CORE MVC 使用EFCORE 进行数据库迁移的问题

**

EFCore执行数据库迁移中的问题

**

(1)Add-Migration Name中

注意在ASP.Core MVC 项目中引用ASPData类库文件以及ASPDomain文件ASPData引用ASPDomain,二者需要手动安装EntityFrameWorkCore.Server并且该项目的EntityFrameWorkCore.Server版本应该低于(最好相同)ASP.Core MVC 中EntityFrameWorkCore版本否则将引用失败
在默认的在新建应用时ASP.Core MVC的Microsoft.AspNetCore.App 2.1中Microsoft.EntityFrameworkCore.Tools 为
2.1.0版本,此时执行Add-Migration会报错,应该将新的Microsoft.EntityFrameworkCore.Tools 安装新的2.1.4版本才与引用的
项目文件相同,最好的做法时新建的一个最新版本的ASP.Core MVC
新建的Class Library默认版本是Microsoft.AspNetCore.App 3.1,此时若低版本的Microsoft.AspNetCore.App Web应用引用
该类库文件,将会引用失败,找不到Using的命名空间
执行Add-Migration 命令时,若存在唯一的默认项目,当增删某些model时或者数据逻辑更改时,需要生成新的迁移文件,如果迁移失败,需要指定DBContext文件名
遇到异常 add-migration Build failed 解决办法
检查项目是否是启动项
检查整个解决方案是否可以编译通过(重要)
上述不行,把其他项目卸载试试
首先一定要执行dotnet restore 查看网站的依赖关系
如果生成解决方案出现生成成功,但是编译跳过N个项目这种也不行,要么排除掉该生产失败的项目

假如项目中有多个dbcontext需要指定

add-migration IntialIdentity -context IdentityDbContext

并且

services.AddDbContext<IdentityDbContext>(options =>options.UseSqlServer(_configuration.GetConnectionString(\"DefaultConnection\"), b => b.MigrationsAssembly(\"MyNewWay\")));

指定

b => b.MigrationsAssembly(\"MyNewWay\")

同时执时指定

update database -context IdentityDbContext

(2)Update-Database

发生错误:A network-related or instance-specific error occurred while
establishing a connection to SQL Server. 大多数情况是
ConnectionString错误
执行该命令需要将默认的项目设为ASPData,将启动项目设为ASP.Core MVC
暂时学到这些,希望大家交流指正

  • 点赞1
  • 收藏
  • 分享
  • 文章举报

覃鸿宇发布了17 篇原创文章 · 获赞 6 · 访问量 360私信关注

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 谈谈ASP.NET CORE MVC 使用EFCORE 进行数据库迁移的问题