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

本文共 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

你可能感兴趣的文章
Hdu 1407 测试你是否和LTC水平一样高
查看>>
别过来,过来我就撕票了!
查看>>
并发模型—共享内存模型(线程与锁)示例篇
查看>>
正则表达式---------------嵌套的分组
查看>>
转Keil 中使用 STM32F4xx 硬件浮点单元
查看>>
分区命令
查看>>
FreeBSD releaning(6)-chmod
查看>>
C语言各数据类型大小和取值范围
查看>>
InsetDrawable
查看>>
oracle的sql执行计划
查看>>
python-函数(装饰器)
查看>>
面向对象
查看>>
Oracle对没有主键的表分页
查看>>
Scilab 的画图函数(2)
查看>>
apache 和 Tomcat 安全性配置
查看>>
[Luogu] 引水入城
查看>>
86. Partition List
查看>>
154. Find Minimum in Rotated Sorted Array II
查看>>
3-bash内部命令变量
查看>>
设计模式 适配器模式(Adapter Pattern)
查看>>