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
结尾的表示立即提交到数据库,也就是立即调用 SaveChanges
或 SaveChangesAsync
。
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。