.net 6 使用ef core 数据存在则更新数据,不存在则添加数据
时间: 2024-02-07 08:02:52 浏览: 496
您可以使用`DbContext`的`AddOrUpdate`方法来实现数据存在则更新数据,不存在则添加数据的功能。
首先,您需要引入`Microsoft.EntityFrameworkCore`和`Microsoft.EntityFrameworkCore.Extensions`命名空间。然后,在您的`DbContext`中添加以下代码:
```csharp
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Extensions;
public class MyDbContext : DbContext
{
public DbSet<MyEntity> MyEntities { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>()
.HasKey(e => e.Id);
}
public void AddOrUpdate(MyEntity entity)
{
this.MyEntities.AddOrUpdate(entity);
this.SaveChanges();
}
}
```
在上面的代码中,我们定义了一个`MyDbContext`类,其中包含一个`MyEntities`属性,表示我们要操作的数据表。`AddOrUpdate`方法接受一个`MyEntity`实例作为参数,如果数据表中已经存在相同主键的数据,则会更新该数据,否则会添加一条新的数据。
使用示例:
```csharp
var dbContext = new MyDbContext();
var entity = new MyEntity
{
Id = 1,
Name = "John"
};
dbContext.AddOrUpdate(entity);
```
在上面的示例中,我们创建了一个`MyEntity`实例,并将其传递给`AddOrUpdate`方法。如果数据表中已经存在`Id`为1的数据,则会更新该数据的`Name`属性为`John`,否则会添加一条`Id`为1,`Name`为`John`的新数据。
阅读全文