一.连接数据库部分(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-Migration、Update-Database)
7.控制器中进行CURD 操作
private MyCoreWebContext _context; public HomeController(MyCoreWebContext context) { _context = context; }
==END==
2、数据库优先模式(DB First方式)
- 程序包控制台输入命令(如果仅需要生成部分数据表,还可以通过将 -Tables 参数添加到上述命令来指定要为哪些表生成实体。例如 -Tables Blog,Post。多个数据表以逗号分隔)
Scaffold-DbContext "数据库连接字符串;" Microsoft.EntityFrameworkCore.SqlServer -OutPutDir DbModels
使用后会在项目中自动生成实体类以及Context,直接调用即可。
==END==
二.连接MySQL数据库
需要两个包,EFCore.Tools和Mysql.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; }
学习记录,有错误会及时修改...