在使用C#进行数据库开发时,EF Core新增数据是一个非常基础且重要的操作。无论是添加单条记录还是批量插入多条数据,Entity Framework Core 都提供了简洁高效的API。本文将手把手教你如何使用 Add 和 AddRange 方法,即使是编程小白也能轻松上手!
Entity Framework Core(简称 EF Core)是微软推出的轻量级、可扩展的 ORM(对象关系映射)框架,用于在 .NET 应用中操作关系型数据库。它允许开发者使用 C# 对象(称为实体)来操作数据库,而无需直接编写 SQL 语句。
在使用 Add 或 AddRange 之前,我们需要先定义实体类和数据库上下文。
public class Product{ public int Id { get; set; } public string Name { get; set; } = string.Empty; public decimal Price { get; set; }} 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 方法。该方法将实体对象标记为“待添加”状态。
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 方法。这比循环调用 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 被广泛用于批量操作的原因。
Id 属性。SaveChangesAsync() 以避免阻塞主线程。SaveChanges 调用中的所有操作默认在一个事务中执行,要么全部成功,要么全部回滚。EFCore.BulkExtensions 等第三方库进行真正的批量插入,因为原生 AddRange 仍是一条条生成 INSERT 语句。通过本文,你已经掌握了 Entity Framework Core Add 与 AddRange 的基本用法。无论你是做简单的 C#数据库操作,还是构建复杂的业务系统,这些知识都是不可或缺的基础。
记住:单条用 Add,多条用 AddRange,最后别忘了调用 SaveChanges!
希望这篇教程对你有帮助!欢迎继续探索 EF Core 的更多强大功能,如更新、删除、查询等。
本文由主机测评网于2025-12-16发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025128564.html