• 十四、.NET CORE3.1 使用EFCORE(Microsoft.EntityFrameworkCore) 创建数据表


    步骤:

      1.建立一个.net core mvc web项目(Tesxt)

      2.添加一个类库(Test.Model)

      3.web项目Test中添加NuGet包:Microsoft.EntityFrameworkCore.Design(我使用的是5.0.4b版本) ;

      4.Test.Model中添加NuGet包:Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Tools,都用5.0.4b版本;

      5.Test.Model 中添加BaseDbContext类继承DbContext,实现构造函数。

      6.appsettings.json 中添加

          "ConnectionStrings": {
            "DefaultConnection": "Server=.;User ID=sa;Password=123456;Database=NewWay;" 
          },

       7.Startup中ConfigureServices 注入(连接数据库)

           services.AddDbContext<BaseDbContext>(options =>  {

                  options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));/*, opt => opt.MigrationsAssembly("NewWay.Models")*/
           });

      8.models中添加实体文件夹和添加实体。

      9.找到工具-Nuget 包管理器-程序包管理器控制台,然后在控制台中输入 Add-Migration +备注(可以随便起名字,用作记录,可以用 Firser/second),

        且控制台的默认项目建议选择你的实体所在文件夹(我的是NewWay.Models)。

      10.很重要的地方

      11.如果没有报红,可以接着使用 Update-Database即可

      12.注意事项,

       此处选择是你的Migrations 生成文件位置,且此处如果选models(), 第7条中的注释部分就不需要了,如果此处选择默认的是Test主程序,那么第7条的注释部分要打开加入进去:

      options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), opt => opt.MigrationsAssembly("NewWay.Models"));

      遇到问题:我执行完add-migration 之后报红 :Your target project 'NewWay' doesn't match your migrations assembly 'NewWay.Models'. Either

      解决方案就是:因为这个报错是startup里面注册的项目和控制台选择的不一样,所以第一种方法就是把第12条中的“, opt => opt.MigrationsAssembly("NewWay.Models")”添加进去,第二种方法就是修改Nuget控制台的默认项目,也就是第12条的前面部分。

  • 相关阅读:
    对象关系一对多转换为一对一的方案——中介者模式总结
    接口转换的利器——适配器模式总结
    多线程场景设计利器:分离方法的调用和执行——命令模式总结
    对比总结三个工厂模式(简单工厂,工厂方法,抽象工厂)
    创建多个“产品”的方式——工厂方法模式总结
    Java反射+简单工厂模式总结
    最简单的设计模式——单例模式的演进和推荐写法(Java 版)
    对复合(协作)算法/策略的封装方法——装饰模式总结
    Java对象序列化全面总结
    创建产品族的方式——抽象工厂模式
  • 原文地址:https://www.cnblogs.com/zhangne/p/15988147.html
Copyright © 2020-2023  润新知