EF Core
数据库
- MSSQL LocalDB
- PostgreSQL
- MySQL/MariaDB
- Oracle
- DB2
- SQLite
- In Memory
- …
SQLLocalDB
命令行查询
- SQLLocalDB
- SQLLocalDB info
如果没有实例 则创建,启动。创建启动命令如下:
- sqllocaldb create mssqllocaldb
-
sqllocaldb start mssqllocaldb
在VS中查看Sqllocaldb
在VS中连接SQLLocalDB
- 在VS Sql server对象资源管理器中查看对应数据库的连接字符串
例如:
Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ASPEFCoreDemo;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False - 在项目的appsettings.json中添加连接字符串
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"DefaultConnection": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=ASPEFCoreDemo;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
}
}
- 添加Nuget包文件
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.Tools
- 建立Data文件夹
– 在Data文件夹中创建DataContext.cs
– 让该类继承自DbContext
– 添加命名空间using Microsoft.EntityFrameworkCore;
– 在构造函数中添加DbContextOptions并传给父类
– 添加所用的映射到数据库表的DbSet类
public class DataContext : DbContext
{
//public很重要,默认alt+enter生成的是protected,导致数据库迁移不成功
public DataContext(DbContextOptions<DataContext> options):base(options)
{
}
public DbSet<Student> Students { get; set; }
}
- 为了方便测试,使用依赖注入,建立一个DataCOntext的服务
在Startup.cs中添加注册服务
//配置文件,读取appsettings.json的数据库连接字符串
private readonly IConfiguration configuration;
public Startup(IConfiguration configuration)
{
this.configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
var connectionString = configuration["ConnectionStrings:DefaultConnection"];
services.AddDbContext<DataContext>(options => { options.UseSqlServer(connectionString); });
}
- 迁移
所用的工具主要有以下两个
– Package Manage Console
– dotnet cli
所用到的命令有以下两个
– Add-Migration Xxxxx
– Update-Database
比如在PM中输入以下指令:
Add-Migration InitialDB
会在项目中生成Migrations文件夹,并在其中生成InitialDB.cs和Snapshot.cs的文件
在PM中输入Update-Database -Verbose
会更新数据库
Filed under: ASP.NET Core,C#,编程 - @ 2022年4月9日 下午6:11