博客
关于我
.Net Core 3.1 EF Core Migration使用CLI数据迁移和同步
阅读量:427 次
发布时间:2019-03-06

本文共 2734 字,大约阅读时间需要 9 分钟。

一、前言

    数据迁移可使用“包管理器控制台”(PMC) 或 CLI。本文列出使用CLI数据迁移命令和一些问题及解决方案。

二、迁移命令

    以下列出添加迁移文件、撤销迁移、更新到数据库、删除数据库基本方法。如需指定DbContext,则在语句后加  -c DbContext名  。如需查看帮助可在命令后加  -h 。

    1、创建迁移文件,迁移文件名必填

dotnet ef migrations add 迁移文件名

    2、撤销迁移,只能在未更新数据库前撤销

dotnet ef migrations remove

    3、更新到数据库

dotnet ef database update

     4、删除数据库

    注意不是删除数据更改,是删除数据库,慎用。

dotnet ef database drop

 

三、问题与解决

    1、问题

无法执行,因为找不到指定的命令或文件。

可能的原因包括:
*你拼错了内置的 dotnet 命令。
*你打算执行 .NET Core 程序,但 dotnet-install 不存在。
*你打算运行全局工具,但在路径上找不到名称前缀为 dotnet 的可执行文件。

 解决:打开CMD,输入:

dotnet tool install -g dotnet-ef

    2、问题

The EF Core tools version '3.1.0' is older than that of the runtime '3.1.2'. Update the tools for the latest features and bug fixes.

解决:需要更新EF Core tools版本,CMD中执行:

dotnet tool update -g dotnet-ef

    3、问题

It was not possible to find any compatible framework version

The framework 'Microsoft.NETCore.App', version '3.1.2' was not found.
- The following frameworks were found:
2.1.9 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
2.1.15 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
3.1.1 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:

- https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.2&arch=x64&rid=win10-x64

解决:到最后提供的网址下载SDK安装

    4、问题

No database provider has been configured for this DbContext. A provider can be configured by overriding the DbContext.OnConfiguring method or by using AddDbContext on the application service provider. If AddDbContext is used, then also ensure that your DbContext type accepts a DbContextOptions<TContext> object in its constructor and passes it to the base constructor for DbContext.

解决:需要在网站目录执行

    5、问题

More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands.

解决:如果有多个DBContext,需要指定迁移哪个DBContext。如:

dotnet ef migrations add InitialCreate -c DBContext名称

    6、问题

Your target project 'Do.TmsApi' doesn't match your migrations assembly 'Do.Models'. Either change your target project or change your migrations assembly.

Change your migrations assembly by using DbContextOptionsBuilder. E.g. options.UseSqlServer(connection, b => b.MigrationsAssembly("Do.TmsApi")). By default, the migrations assembly is the assembly containing the DbContext.
Change your target project to the migrations project by using the Package Manager Console's Default project drop-down list, or by executing "dotnet ef" from the directory containing the migrations project.

解决:如果DBContext和启动程序不在一个程序集,需要指定要迁移的程序集。代码中添加要迁移的程序集名称:

options.UseSqlServer(connection, b => b.MigrationsAssembly("Do.TmsApi"))

 

转载地址:http://drsuz.baihongyu.com/

你可能感兴趣的文章
Nginx配置参数中文说明
查看>>
Nginx配置后台网关映射路径
查看>>
nginx配置域名和ip同时访问、开放多端口
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置如何一键生成
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>