当前位置:首页 > C# > 正文

EF Core新增数据详解(从零开始掌握Entity Framework Core的Add与AddRange方法)

在使用C#进行数据库开发时,EF Core新增数据是一个非常基础且重要的操作。无论是添加单条记录还是批量插入多条数据,Entity Framework Core 都提供了简洁高效的API。本文将手把手教你如何使用 AddAddRange 方法,即使是编程小白也能轻松上手!

EF Core新增数据详解(从零开始掌握Entity Framework Core的Add与AddRange方法) Core新增数据 Entity Core Add AddRange C#数据库操作 第1张

什么是 EF Core?

Entity Framework Core(简称 EF Core)是微软推出的轻量级、可扩展的 ORM(对象关系映射)框架,用于在 .NET 应用中操作关系型数据库。它允许开发者使用 C# 对象(称为实体)来操作数据库,而无需直接编写 SQL 语句。

准备工作:创建模型和上下文

在使用 AddAddRange 之前,我们需要先定义实体类和数据库上下文。

1. 定义实体类(例如:Product)

public class Product{    public int Id { get; set; }    public string Name { get; set; } = string.Empty;    public decimal Price { get; set; }}

2. 创建 DbContext

using Microsoft.EntityFrameworkCore;public class AppDbContext : DbContext{    public DbSet<Product> Products { get; set; }    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)    {        // 使用 SQLite 作为示例数据库        optionsBuilder.UseSqlite("Data Source=app.db");    }}

使用 Add 方法插入单条数据

当你只需要插入一条记录时,可以使用 Add 方法。该方法将实体对象标记为“待添加”状态。

using var context = new AppDbContext();// 创建新商品var newProduct = new Product{    Name = "无线蓝牙耳机",    Price = 199.99m};// 将实体加入上下文context.Products.Add(newProduct);// 提交更改到数据库await context.SaveChangesAsync();

注意:Add 只是将对象放入 EF Core 的变更跟踪器中,并不会立即写入数据库。必须调用 SaveChanges()SaveChangesAsync() 才会真正执行 INSERT 操作。

使用 AddRange 方法批量插入多条数据

当你需要一次性插入多条记录时,推荐使用 AddRange 方法。这比循环调用 Add 更高效,也更简洁。

using var context = new AppDbContext();var products = new List<Product>{    new Product { Name = "手机支架", Price = 29.99m },    new Product { Name = "充电宝", Price = 89.00m },    new Product { Name = "数据线", Price = 19.50m }};// 一次性添加多个实体context.Products.AddRange(products);// 保存到数据库await context.SaveChangesAsync();

使用 AddRange 不仅代码更清晰,而且在内部 EF Core 会优化变更跟踪过程,提升性能。这也是 EF Core AddRange 被广泛用于批量操作的原因。

常见问题与注意事项

  • 主键自增:如果数据库设置了自增主键(如 SQL Server 的 IDENTITY),EF Core 会在保存后自动填充 Id 属性。
  • 异步操作:在 Web 应用中,建议使用 SaveChangesAsync() 以避免阻塞主线程。
  • 事务安全:一次 SaveChanges 调用中的所有操作默认在一个事务中执行,要么全部成功,要么全部回滚。
  • 性能提示:对于大量数据(如上千条),考虑使用 EFCore.BulkExtensions 等第三方库进行真正的批量插入,因为原生 AddRange 仍是一条条生成 INSERT 语句。

总结

通过本文,你已经掌握了 Entity Framework Core AddAddRange 的基本用法。无论你是做简单的 C#数据库操作,还是构建复杂的业务系统,这些知识都是不可或缺的基础。

记住:单条用 Add,多条用 AddRange,最后别忘了调用 SaveChanges

希望这篇教程对你有帮助!欢迎继续探索 EF Core 的更多强大功能,如更新、删除、查询等。