需安装Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools及对应数据库提供程序包;定义实体类与继承DbContext的上下文类;通过Add-Migration和Update-Database执行迁移;依赖注入使用DbContext并注意Scoped生命周期。
在Visual Studio中右键项目 → 选择“管理NuGet包” → 切换到“浏览”选项卡,依次安装以下核心包:
创建一个或多个表示数据表的C#类(实体),例如:
public class Product
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public decimal Price { get; set; }
}
再新建一个继承自DbContext的类,用于管理实体和数据库连接:
public class AppDbContext : DbContext
{
public DbSet Products { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer("YourConnectionStringHere");
}
推荐方式是把连接字符串抽离到appsettings.json,并在Program.cs中注册上下文:
builder.Services.AddDbContext(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")))
打开“程序包管理器控制台”(PMC),确保默认项目选中你的主项目,然后执行:
后续模型变更时,重复执行这两步即可。迁移文件会保存在项目中的Migrations文件夹里,可手动检查生成的SQL逻辑。
通过依赖注入获取AppDbContext实例,进行增删改查操作:
var product = new Product { Name = "Laptop", Price = 999.99m };
context.Products.Add(product);
await context.SaveChangesAsync(); // 异步保存
var products = await context.Products.ToListAsync(); // 查询全部
注意:DbContext应按作用域
生命周期注册(AddDbContext默认即为Scoped),避免跨请求复用或手动new实例。
基本上就这些。不复杂但容易忽略配置位置和生命周期管理。