一.連接數據庫部分(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; }
學習記錄,有錯誤會及時修改...