⭐️ Furion v4 版本支持【所有历史版本】无缝升级,一套代码兼容 .NET 5+ ⭐️
Skip to main content

9.8 删除操作

功能移除声明

以下内容包含 Exists 单词的在 Furion 2.6.0 + 版本中已移除。

9.8.1 删除一个实体(不立即提交)

// ==== 同步操作 ====// 示例一repository.Delete(user);// 示例二user.Delete();// 示例三repository.ChangeEntityState(user, EntityState.Deleted);// 示例四repository.Entities.Remove(user);// ==== 异步操作 ====// 示例一await repository.DeleteAsync(user);// 示例二await user.DeleteAsync();

9.8.2 删除一个实体(立即提交)

// ==== 同步操作 ====// 示例一repository.DeleteNow(user);// 示例二user.DeleteNow();// ==== 异步操作 ====// 示例一await repository.DeleteNowAsync(user);// 示例二await user.DeleteNowAsync();

9.8.3 根据主键删除记录(不立即提交)

// ==== 同步操作 ====// 示例一repository.Delete(1);// 示例二user.Delete(1);// ==== 异步操作 ====// 示例一await repository.DeleteAsync(1);// 示例二await user.DeleteAsync(1);

9.8.4 根据主键删除记录(立即提交)

// ==== 同步操作 ====// 示例一repository.DeleteNow(1);// 示例二user.DeleteNow(1);// ==== 异步操作 ====// 示例一await repository.DeleteNowAsync(1);// 示例二await user.DeleteNowAsync(1);

9.8.5 数据存在才根据主键删除(不立即提交)

// ==== 同步操作 ====// 示例一repository.DeleteExists(1);// 示例二user.DeleteExists(1);// ==== 异步操作 ====// 示例一await repository.DeleteExistsAsync(1);// 示例二await user.DeleteExistsAsync(1);

9.8.6 数据存在才根据主键删除(立即提交)

// ==== 同步操作 ====// 示例一repository.DeleteExistsNow(1);// 示例二user.DeleteExistsNow(1);// ==== 异步操作 ====// 示例一await repository.DeleteExistsNowAsync(1);// 示例二await user.DeleteExistsNowAsync(1);
小知识

所有带 Now 结尾的表示立即提交到数据库,也就是立即调用 SaveChangesSaveChangesAsync

9.8.7 假删除/软删除

功能移除声明

以下内容在 Furion 2.10 + 版本中已移除。

Furion 框架中可以通过 [FakeDelete] 特性标记假删除特性,如:

9.8.7.1 添加 [FakeDelete] 标记

public class Model: IEntity{    [FakeDelete(true)]  // 设置假删除的值    public bool IsDeleted { get; set; }}
[FakeDelete]

[FakeDelete] 属性拥有带一个参数的构造函数,这个参数是假删除的值

9.8.7.2 假删除使用

// ==== 同步操作 ====// 示例一repository.FakeDelete(entity);// 示例二repository.FakeDeleteNow(entity);// 示例三repository.FakeDelete(1);// 示例四repository.FakeDeleteNow(1);// 示例五entity.FakeDelete();// 示例六repository.UpdateInclude(user, u => u.IsDeleted);// ==== 异步操作 ====// 示例一await repository.FakeDeleteAsync(entity);// 示例二await repository.FakeDeleteNowAsync(entity);// 示例三await repository.FakeDeleteAsync(1);// 示例四await repository.FakeDeleteNowAsync(1);// 示例五await entity.FakeDeleteAsync();// 示例六await repository.UpdateIncludeAsync(user, u => u.IsDeleted);

9.8.8 反馈与建议

与我们交流

给 Furion 提 Issue

演练场