**
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
暂时学到这些,希望大家交流指正