博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2017 EFCore 迁移数据库命令
阅读量:4700 次
发布时间:2019-06-09

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

项目结构:

 

首先引用

   Microsoft.EntityFrameworkCore.Tools

  Microsoft.EntityFrameworkCore.Design

 

增加类DesignTimeDbContextFactory

public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory
{ 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
Customers { get; set; } public DbSet
Orders { get; set; } public DbSet
OrderItems { get; set; } public DbSet
Products { get; set; } public DbSet
ProductItems { get; set; } public DbSet
Users { get; set; } public DbSet
BuckleRecords { get; set; } public DbSet
CustomerRelations { get; set; } public DbSet
OrderLogs { get; set; } public DbSet
RebateRecords { get; set; } public DbSet
Recharges { get; set; } public DbSet
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
().HasKey(m => m.CustomerId); builder.Entity
().ToTable("Customer"); builder.Entity
().ToTable("BuckleRecord"); builder.Entity
().ToTable("CustomerRelation"); builder.Entity
().ToTable("Order"); builder.Entity
().ToTable("OrderItem"); builder.Entity
().ToTable("OrderLog"); builder.Entity
().ToTable("Product"); builder.Entity
().ToTable("ProductItem"); builder.Entity
().ToTable("RebateRecord"); builder.Entity
().ToTable("Recharge"); builder.Entity
().ToTable("User"); builder.Entity
().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>

最终的配置文件如下:

netcoreapp2.0
2.0.3
..\lib\CZY.Framework.dll
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration\2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll
View Code

 

 

cmd到QH.Data项目文件夹

生成迁移指令

dotnet ef migrations add initDB

更新到数据库

dotnet ef database update

 

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

增加节点:

 

转载于:https://www.cnblogs.com/XM-CHC/p/8397804.html

你可能感兴趣的文章
2019年春季学期第二周作业
查看>>
深入浅出 Java 中的包装类
查看>>
SQL点点滴滴_修改数据库的兼容级别
查看>>
赋予ANDROID模拟器root权限2.2
查看>>
requests:json请求中中文乱码处理
查看>>
iOS百度地图SDK集成详细步骤
查看>>
mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件
查看>>
猫途鹰简单爬虫正则巩固
查看>>
Openwrt TF Card Auto Mount&Check (4)
查看>>
认识:人工智能AI 机器学习 ML 深度学习DL
查看>>
C# WebClient类上传和下载文件
查看>>
Spark RDD的设计与运行原理
查看>>
codeforces C. Triangle
查看>>
内存分配与回收策略
查看>>
移动web前端下拉刷新效果
查看>>
控制台应用程序窗口无法输入汉字解决办法
查看>>
POJ 3414 pots (未解决)
查看>>
诺基亚 920T - 我的非凡系列手机始终显示旋转齿轮而无响应,我该如何让手机停止显示旋转齿轮?...
查看>>
Ajax解决浏览器的缓存问题
查看>>
灾后重建
查看>>