项目结构:

首先引用

   Microsoft.EntityFrameworkCore.Tools

  Microsoft.EntityFrameworkCore.Design

增加类DesignTimeDbContextFactory

   public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<QHContext>
{
public QHContext CreateDbContext(string[] args)
{ var builder = new DbContextOptionsBuilder();
//builder.UseSqlServer("Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Initial Catalog=Light;");
builder.UseSqlServer("Server=***;Database=**;User ID=**;Password=**;Trusted_Connection=false;Connect Timeout=120;MultipleActiveResultSets=True;");
return new QHContext(builder.Options);
}
}

QHContext 类

 public class QHContext : DbContext
{ public QHContext(DbContextOptions options) : base(options)
{ } public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<OrderItem> OrderItems { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<ProductItem> ProductItems { get; set; } public DbSet<User> Users { get; set; } public DbSet<BuckleRecord> BuckleRecords { get; set; }
public DbSet<CustomerRelation> CustomerRelations { get; set; }
public DbSet<OrderLog> OrderLogs { get; set; }
public DbSet<RebateRecord> RebateRecords { get; set; }
public DbSet<Recharge> Recharges { get; set; }
public DbSet<Withdraw> Withdraws { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//var builder = new ConfigurationBuilder()
// .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); //var configuration = builder.Build(); //string connectionString = configuration.GetConnectionString("MyConnection"); //optionsBuilder.UseMySQL(connectionString);
} protected override void OnModelCreating(ModelBuilder builder)
{ //builder.Entity<Customer>().HasKey(m => m.CustomerId);
builder.Entity<Customer>().ToTable("Customer");
builder.Entity<BuckleRecord>().ToTable("BuckleRecord");
builder.Entity<CustomerRelation>().ToTable("CustomerRelation");
builder.Entity<Order>().ToTable("Order");
builder.Entity<OrderItem>().ToTable("OrderItem");
builder.Entity<OrderLog>().ToTable("OrderLog");
builder.Entity<Product>().ToTable("Product");
builder.Entity<ProductItem>().ToTable("ProductItem");
builder.Entity<RebateRecord>().ToTable("RebateRecord");
builder.Entity<Recharge>().ToTable("Recharge");
builder.Entity<User>().ToTable("User");
builder.Entity<Withdraw>().ToTable("Withdraw"); base.OnModelCreating(builder);
}
}

  

 

编辑Qh.Data项目的csproj 增加

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
</ItemGroup>

有可能报错找不到程序集,需要再PropertyGroup节点添加指定运行版本

<RuntimeFrameworkVersion>2.0.3</RuntimeFrameworkVersion>

最终的配置文件如下:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
<TargetFramework>netcoreapp2.</TargetFramework>
<RuntimeFrameworkVersion>2.0.</RuntimeFrameworkVersion>
</PropertyGroup> <ItemGroup>
<PackageReference Include="DapperExtensions" Version="1.6.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.1" />
</ItemGroup> <ItemGroup>
<ProjectReference Include="..\Qh.Model\Qh.Model.csproj" />
</ItemGroup> <ItemGroup>
<Reference Include="CZY.Framework">
<HintPath>..\lib\CZY.Framework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration">
<HintPath>C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration\2.0.\lib\netstandard2.\Microsoft.Extensions.Configuration.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>

cmd到QH.Data项目文件夹

生成迁移指令

dotnet ef migrations add initDB

更新到数据库

dotnet ef database update

如果:执行命令总是提示 未找到与命令“dotnet-ef”匹配的可执行文件

增加节点:

<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>

vs2017 EFCore 迁移数据库命令的更多相关文章

  1. Mego开发文档 - 从EF6/EFCore迁移到Mego

    从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...

  2. Efcore迁移

    Efcore迁移 Add-Migration XX:1.根据模型的实际结构对比当前快照,从而生成新迁移文件的Up和Down方法2.根据模型的实际结构修改快照和新迁移文件---------------- ...

  3. MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本

    介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...

  4. linux下导入、导出mysql数据库命令 下载文件到本地

    一.下载到本地 yum install lrzsz sz filename  下载 rz filename  上传   linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...

  5. MongoDB学习笔记-数据库命令

    概念 数据库命令(database command)是一种非常特殊类型的查询.文档的创建.更新.删除及查询都属于数据库命令的范畴,它还包含管理性的任务(比如关闭服务器和克隆数据库).统计数据及执行聚合 ...

  6. [翻译] - <Entity Framework> - 直接执行数据库命令

    原文:[翻译] - <Entity Framework> - 直接执行数据库命令 纯属学习上的记录, 非专业翻译, 如有错误欢迎指正! 原文地址: http://msdn.microsof ...

  7. mysql查看数据库命令

    mysql查看数据库命令 打开的数据库的命令 mysql> use mysql Database changed 查看数据库的命令 mysql> show databases; 查看数据表 ...

  8. 二进制方式快速安装MySQL数据库命令集合

    二进制方式快速安装MySQL数据库命令集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1.安装mysql ls mysql ...

  9. SharePoint迁移数据到生产环境

    SharePoint迁移数据到生产环境步骤如下: 1. 安装部署好生产环境 2. 配置管理中心 3. 安装SPD工具 4. 备份数据库(放在数据库服务器) 5. 备份wsp包(部署在管理中心服务器) ...

随机推荐

  1. [BJOI2019]勘破神机(斯特林数,数论)

    [BJOI2019]勘破神机(斯特林数,数论) 题面 洛谷 题解 先考虑\(m=2\)的情况. 显然方案数就是\(f_i=f_{i-1}+f_{i-2}\),即斐波那契数,虽然这里求出来是斐波那契的第 ...

  2. 堆以及一些用法 QWQ这是写得最认真的板子题

    最近一直在学图论,然后吧,由于学的东西实在是太多太杂了,加上蒟蒻本蒻又经常颓,所以落了好多好多板子题的整理没写啊嘤嘤嘤,不过把这些东西学的差不多了,再一块写个整理,其实感觉还不错?????也算是很神奇 ...

  3. POJ 1848 Tree 树形DP

    题目大意: 给出一棵树,现在要往这棵树上加边,使得所有的点都在环中,且每个点只能属于一个环 题解: 考虑DP: \(dp[i][0]\)表示使\(i\)这颗子树的每个点都在环内需要加的最少边数. \( ...

  4. 基于Redis的分布式锁真的安全吗?

    说明: 我前段时间写了一篇用consul实现分布式锁,感觉理解的也不是很好,直到我看到了这2篇写分布式锁的讨论,真的是很佩服作者严谨的态度, 把这种分布式锁研究的这么透彻,作者这种技术态度真的值得我好 ...

  5. (一)V4L2学习流程

    title: V4L2学习流程 date: 2019/4/23 18:00:00 toc: true --- V4L2学习流程 参考资料 关键资料,插图让人一下子就理解了 Linux摄像头驱动1--v ...

  6. .NET技术-2.0. 操作数据库-EF

    .NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...

  7. SQL Server 游标的使用示例

    Ø  简介 本文主要记录 MSSQL 中的游标使用示例,在有必要时方便借鉴查阅.游标一般定义在某段功能性的 SQL 语句中,或者存储过程中.之所以选择用它,是因为有时候无法使用简单的 SQL 语句满足 ...

  8. vmware彻底隐藏控制栏白条

    vmware全屏模式都会在屏幕顶端留一条细细的条. 选择查看,里面有个独占模式.选中该模式,就可以达到完全全屏的效果. 但是进入独占模式后,无法再在多个系统间来回切换,使用ctrl+alt可以切换回正 ...

  9. Swift 4 Hex Color

    上点干货,写个extension, 可以通过hex值去设置Color,以及通过UIColor的color case 去得到hex值. extension UIColor {     var toHex ...

  10. Linux基础 - 基本命令

    一.Linux系统命令操作语法格式 二.目录操作 创建目录 查看目录 改变当前的目录/位置 打印当前工作目录 三.创建文件或者修改文件时间戳(文件属性) 四.stat命令 vim 查看文件内容 mor ...