c# ef6 sqlserver 增删改查
时间: 2025-07-04 12:01:20 浏览: 8
### 三级标题:C# Entity Framework 6 实现 SQL Server 增删改查操作
在使用 C# 和 Entity Framework 6 进行 SQL Server 数据库的增删改查操作时,首先需要确保项目中已经安装了必要的 NuGet 包。对于 Entity Framework 6,可以通过 NuGet 包管理器安装 `EntityFramework` 和 `EntityFramework6.SqlServer` 等包以支持 SQL Server 数据库的操作[^3]。
#### 数据模型定义
首先,定义一个实体类来表示数据库中的表结构。例如,假设有一个名为 `NameEntity` 的数据表,其中包含两个字段:`id` 和 `name`。可以创建如下实体类:
```csharp
public class NameEntity
{
public string Id { get; set; }
public string Name { get; set; }
}
```
#### 创建 DbContext
接下来,创建一个继承自 `DbContext` 的上下文类,该类用于管理与数据库的连接以及实体对象的生命周期。在这个类中,通常会定义 `DbSet<T>` 属性来表示数据库中的表。
```csharp
using System.Data.Entity;
public class MyDbContext : DbContext
{
public DbSet<NameEntity> Names { get; set; }
// 构造函数接受连接字符串名称作为参数
public MyDbContext(string connectionString)
: base(connectionString)
{
}
}
```
#### 实现增删改查功能
随后,为了实现基本的 CRUD 操作,可以编写一个实现了仓储模式的类,它封装了对数据库的具体访问逻辑,并提供了简洁的方法供外部调用。
```csharp
public interface IRepository<TEntity> where TEntity : class
{
TEntity GetById(object id);
IEnumerable<TEntity> GetAll();
void Add(TEntity entity);
void Update(TEntity entity);
void Delete(TEntity entity);
void Delete(object id);
}
public class EFRepository<TEntity> : IRepository<TEntity> where TEntity : class
{
private readonly MyDbContext _context;
private readonly IDbSet<TEntity> _dbSet;
public EFRepository(MyDbContext context)
{
_context = context;
_dbSet = _context.Set<TEntity>();
}
public TEntity GetById(object id)
{
return _dbSet.Find(id);
}
public IEnumerable<TEntity> GetAll()
{
return _dbSet.ToList();
}
public void Add(TEntity entity)
{
_dbSet.Add(entity);
_context.SaveChanges();
}
public void Update(TEntity entity)
{
var entry = _context.Entry(entity);
if (entry.State == EntityState.Detached)
{
_dbSet.Attach(entity);
entry.State = EntityState.Modified;
}
_context.SaveChanges();
}
public void Delete(TEntity entity)
{
_dbSet.Remove(entity);
_context.SaveChanges();
}
public void Delete(object id)
{
var entity = GetById(id);
if (entity != null)
{
Delete(entity);
}
}
}
```
#### 调用方法执行操作
最后,在应用程序的主函数或其它地方实例化上述仓储类并调用相应的方法来进行增删改查操作。
```csharp
class Program
{
static void Main(string[] args)
{
// 使用正确的连接字符串初始化上下文
var context = new MyDbContext("YourConnectionStringHere");
// 创建仓储实例
var repository = new EFRepository<NameEntity>(context);
// 添加新记录
var newName = new NameEntity { Id = "2", Name = "Bruce Lee" };
repository.Add(newName); // 添加一个名字
// 更新现有记录
var existingName = repository.GetById("1");
if (existingName != null)
{
existingName.Name = "Marry";
repository.Update(existingName);
}
// 查询单个记录
var retrievedName = repository.GetById("2");
// 删除记录
repository.Delete("1");
Console.WriteLine("进行增删改查");
Console.ReadLine();
}
}
```
以上代码示例展示了如何使用 Entity Framework 6 在 C# 中为 SQL Server 数据库实现基础的增删改查操作。通过定义实体类、创建数据库上下文以及构建通用的仓储接口和实现,开发者能够更加高效地处理数据库相关的业务需求。
阅读全文
相关推荐


















