.Net Core 3.1使用EF连接数据库


一.连接数据库部分(EF)

1、代码优先模式(Code First方式)

1.1安装必要的NuGet包

(1)首先,我们打开vs中的NuGet包安装以下的库:

(2)Microsoft.EntityFrameworkCore.SqlServer(连接sql server数据库的包)

(3)Microsoft.EntityFrameworkCore.Tools(命令行所需的库)

(4)Microsoft.EntityFrameworkCore.Design(vs code命令行所需的库,vs2019,不需要安装)

1.2创建实体类

1.3创建DbContext.cs

using Microsoft.EntityFrameworkCore;

public class MyContext : DbContext

{

    public MyContext(DbContextOptions<MyContext> options) : base(options)

  {

    }

    public DbSet<Province> Province { get; set; }

}

 

1.4 在appsettings.json文件中写好连接字符串

  //连接的字符串

  "ConnectionStrings": {

  "SQLServerConnection": "Data Source=.;Initial Catalog=MyCoreWeb;Integrated Security=True"

  },

 

1.5  在Startup.cs文件中的ConfigureServices方法中引用,注入依赖

  //添加SQL Server连接

  services.AddDbContext<MyCoreWebContext>(options =>

  {

       options.UseSqlServer(Configuration.GetConnectionString("SQLServerConnection"));

});

 

1.6 数据库迁移(程序包控制台命令如下)

需要输入1、7两个命令即可(Add-MigrationUpdate-Database

7.控制器中进行CURD 操作

        private MyCoreWebContext _context;

        public HomeController(MyCoreWebContext context)

        {

            _context = context;

        }

 

==END==

2、数据库优先模式(DB First方式)

  1. 程序包控制台输入命令(如果仅需要生成部分数据表,还可以通过将 -Tables 参数添加到上述命令来指定要为哪些表生成实体。例如 -Tables Blog,Post。多个数据表以逗号分隔
Scaffold-DbContext "数据库连接字符串;" Microsoft.EntityFrameworkCore.SqlServer -OutPutDir DbModels

 

使用后会在项目中自动生成实体类以及Context,直接调用即可。

==END==

 

二.连接MySQL数据库

需要两个包,EFCore.ToolsMysql.Data.EFCore

(1)创建DB映射类

    public class MySQLDbContext:DbContext

    {

        public MySQLDbContext (DbContextOptions options) : base(options) { }

        public DbSet<student> student { get; set; }

}

 

(2)在appsettings.json中设置连接字符串

"ConnectionStrings": {

    "MySQL": "Server = localhost; database=lc-student; uid=root; pwd=123456; SslMode=None",

    "SQLServer": "Data Source=DESKTOP-ABI75O3\\SQLEXPRESS;Initial Catalog=MyProjectDB;Integrated Security=True"

  }

 

 

 

(3)注入依赖

  string MySQLString = Configuration.GetConnectionString("MySQL");

 services.AddDbContext<MySQLDbContext>(options => options.UseMySQL(MySQLString));

 

(4)设置控制器

  private MySQLDbContext _dbcontext;

 

  public HomeController(ILogger<HomeController> logger, MySQLDbContext dbContext)

        {

            _logger = logger;

            _dbcontext = dbContext;

        }

 

 学习记录,有错误会及时修改...


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM