netcore入门(3)-EFCore之codefirst、databasefirst

netcore提供了从模型生成到数据库,以及从数据库生成模型两种,aspnet里面使用的ef是对应的。

代码链接:

一、CodeFirst

1、新建net core项目,用3.1版本的吧,2.1尝试的时候失败了。

netcore入门(3)-EFCore之codefirst、databasefirst_第1张图片

netcore入门(3)-EFCore之codefirst、databasefirst_第2张图片

2、Modles里面创建一个UserInfo类

 

 

 

netcore入门(3)-EFCore之codefirst、databasefirst_第3张图片

3、导Sqlserver的包

netcore入门(3)-EFCore之codefirst、databasefirst_第4张图片

4、在appsettings.json中添加数据库连接字符串

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "MvcMovieContext": "Data Source=127.0.0.1;Initial Catalog=TestDb;Persist Security Info=True;User ID=sa;Password=admin123"
  }
}

5、在Controllers上面右键,添加新搭建基架项目,然后选择模型类,上下文我没有创建,让系统默认生成是可以的。

netcore入门(3)-EFCore之codefirst、databasefirst_第5张图片

netcore入门(3)-EFCore之codefirst、databasefirst_第6张图片

效果:

netcore入门(3)-EFCore之codefirst、databasefirst_第7张图片


namespace CodeFirst.Data
{
    public class DataContext : DbContext
    {
        public DataContext (DbContextOptions options)
            : base(options)
        {
        }

        public DbSet UserInfo { get; set; }
    }
}

netcore入门(3)-EFCore之codefirst、databasefirst_第8张图片

修改数据库连接字符串,因为默认的时候他把你改掉了,记得自己修改一下:

6、用命令根据model生成数据库


Add-Migration InitialCreate
Update-Database

netcore入门(3)-EFCore之codefirst、databasefirst_第9张图片

7、运行即实现了增删改查

netcore入门(3)-EFCore之codefirst、databasefirst_第10张图片

 

二、DatabaseFirst

1、创建项目

都一样的没什么需要说的;

2、引用对应的包

netcore入门(3)-EFCore之codefirst、databasefirst_第11张图片

3、程序包管理器控制台执行语句

关于这个命令的介绍,大家可以参考其他人的博客;

 Scaffold-DbContext "Data Source=127.0.0.1;Initial Catalog=TestDb;Persist Security Info=True;User ID=sa;Password=admin123" Microsoft.EntityFrameworkCore.SqlServer -o Models -f

 

执行结果:

 netcore入门(3)-EFCore之codefirst、databasefirst_第12张图片

4、默认生成的会有警告,可以删除没什么影响,也可以对比以前的进行修改

netcore入门(3)-EFCore之codefirst、databasefirst_第13张图片

你可能感兴趣的:(netcore,EFcore两种实现,codefirst,databasefirst)