vs2017 EFCore 迁移数据库命令
项目结构:
首先引用
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 迁移数据库命令的更多相关文章
- Mego开发文档 - 从EF6/EFCore迁移到Mego
从EF6/EFCore迁移到Mego框架 如果您有EntityFragmework6或EntityFragmeworkCore的开发经验,在首次接触Mego框架时会发现这两个框架非常相似,本文将帮忙您 ...
- Efcore迁移
Efcore迁移 Add-Migration XX:1.根据模型的实际结构对比当前快照,从而生成新迁移文件的Up和Down方法2.根据模型的实际结构修改快照和新迁移文件---------------- ...
- MongoDB学习笔记-06 数据库命令、固定集合、GridFS、javascript脚本
介绍MongoDB支持的一些高级功能: 数据库命令 固定大小的集合 GridFS存储大文件 MongoDB对服务端JavaScript的支持 数据库命令 命令的原理 MongoDB中的命令其实是作为一 ...
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...
- MongoDB学习笔记-数据库命令
概念 数据库命令(database command)是一种非常特殊类型的查询.文档的创建.更新.删除及查询都属于数据库命令的范畴,它还包含管理性的任务(比如关闭服务器和克隆数据库).统计数据及执行聚合 ...
- [翻译] - <Entity Framework> - 直接执行数据库命令
原文:[翻译] - <Entity Framework> - 直接执行数据库命令 纯属学习上的记录, 非专业翻译, 如有错误欢迎指正! 原文地址: http://msdn.microsof ...
- mysql查看数据库命令
mysql查看数据库命令 打开的数据库的命令 mysql> use mysql Database changed 查看数据库的命令 mysql> show databases; 查看数据表 ...
- 二进制方式快速安装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 ...
- SharePoint迁移数据到生产环境
SharePoint迁移数据到生产环境步骤如下: 1. 安装部署好生产环境 2. 配置管理中心 3. 安装SPD工具 4. 备份数据库(放在数据库服务器) 5. 备份wsp包(部署在管理中心服务器) ...
随机推荐
- IAR使用跳转功能时不正常的情况
@2019-04-12 [小记] [使用环境]IAR-Arm8.30.1 [验证] 均为实测 1. 出现如下图这种情况应该是工程所在路径太深导致 2. 如果不弹出上图警告,但还是不跳转应该是工程编译信 ...
- Docke--Dockerfile 构建LNMP环境
Dockerfile 构建nginx并结合php 1.构建基础镜像 先构建一个基础镜像,添加repo的环境和编译的环境,而centos镜像就是初始的官方镜像,后面构建php.nginx.mysql都使 ...
- Outlook 2013 日历/任务本地备份与还原
1.日历: 备份日历:切换到日历项,按如下步骤备份.文件 --> 保存日历 --> 其它选项: 日期范围:指定日期(开始日期:2018/1/1,结束日期:2018/12/31) 详细信息: ...
- 通用的C#导出Excel 支持2003及2007以上版本
将数据导出到Excel,供用户下载是经常要使用到的一个功能,我这里进行了一些封装,目前已满足项目中导出的需求,使用DataReader导出Excel,支持自定义多表头,使用委托处理字段格式化及字段值的 ...
- webstorm开发微信小程序
参考博客:https://www.cnblogs.com/pansidong/articles/7563155.html
- Mybatis插件机制以及PageHelper插件的原理
首先现在已经有很多Mybatis源码分析的文章,之所以重复造轮子,只是为了督促自己更好的理解源码. 1.先看一段PageHelper拦截器的配置,在mybatis的配置文件<configurat ...
- Tomcat系列(4)——Tomcat 组件及架构详细部分
核心部分 1. 定义 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta ...
- Mysql查询库、表存储量(Size)
Mysql查询库.表存储量(Size) 1.要查询表所占的容量,就是把表的数据和索引加起来就可以了. SELECT SUM(DATA_LENGTH) + SUM(INDEX_LENGTH) FROM ...
- PMP知识点(二)——三点估算的两种方法对活动持续时间估算的影响和如何取舍
一.准备工作 活动持续时间的估算属于PMBOK中第六章项目时间管理中第五节6.6估算活动持续时间的内容. 三点估算是6.5和7.2(估算成本)中应用到的一种工具和技术.数据流向图参考如下: 其应用到的 ...
- Microsoft Internet Explorer v11 / XML External EntityInjection 0day
[+] Credits: John Page (aka hyp3rlinx) [+] Website: hyp3rlinx.altervista.org[+] Source: http://hyp3 ...