zoukankan      html  css  js  c++  java
  • ef core 3 migration

    先选中要migration的项目,个人理解,要migration的项目有以下特点:

    1. 有appsetting.json文件,文件里当然配好了连接串,等会migration的时候就是使用这里面配的连接串的;

    2. 在startup.cs文件里,可以某种方式进到如下类似的代码里:

    services.AddDbContext<TIdentityDbContext>(options => options.UseMySql(identityConnectionString, sql => sql.MigrationsAssembly(migrationsAssembly)));

    其实就是注册 DbContext 的代码。什么叫 以某种方式进到 ?简单说就是直接写了或者调用了在别的项目里写的这么一行代码。

    本人常见的的,就是MVC web类型的项目。

    migration步骤,执行以下命令:

    1.

    dotnet ef migrations add InitialCreate --context AdminIdentityDbContext

    2.

    dotnet ef database update --context AdminIdentityDbContext

    执行以上两个命令的时候所在的目录就算是target project,migration assembly和target project好像要一致,为什么是好像?因为不一致它就报错如下,而我也没找哪里特别说明这两货要一致的文本(没仔细找^_^)。

    Your target project 'MyISAdmin.STS.Identity' doesn't match your migrations assembly 'MyISAdmin.Admin.EntityFramework.MySql'. Either change your target project or cChange your migrations assembly by using DbContextOptionsBuilder. E.g. options.UseSqlServer(connection, b => b.MigrationsAssembly("MyISAdmin.STS.Identity")). 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.

    可以看到最上面一处代码里有调用 sql.MigrationsAssembly(migrationsAssembly) 这么个代码,这里的 migrationsAssembly 就是个字符串,可以hard code,是否要hard code,自己斟酌。

  • 相关阅读:
    GCC 常用参数 休子的日志 网易博客
    分享:dos2unix 6.0.3 发布
    编写字符串反转函数 小小外星人的技术博客 博客频道 CSDN.NET
    gcc 搜搜百科
    GCC 常用参数 休子的日志 网易博客
    说说IUnitOfWork~DbContext对象的创建应该向BLL层公开
    JS~什么是用心体会,Coder追求的是什么
    基础才是重中之重~值类型和引用类型
    Yslow23条规则
    说说IUnitOfWork~我的IUnitOfWork+Repository架构
  • 原文地址:https://www.cnblogs.com/lihan829/p/12622990.html
Copyright © 2011-2022 走看看