十四、.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条的前面部分。

 

posted @ 2022-03-10 09:48  大型电灯泡  阅读(410)  评论(0编辑  收藏  举报