mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
- 增加 DbSet/Repository DeleteCascade 级联删除功能;#609
This commit is contained in:
@ -94,6 +94,9 @@ namespace FreeSql
|
||||
_dbset.RemoveRange(entitys);
|
||||
return _db.SaveChanges();
|
||||
}
|
||||
public List<object> DeleteCascade(TEntity entity) => _dbset.RemoveCascade(entity);
|
||||
public List<object> DeleteCascade(IEnumerable<TEntity> entitys) => _dbset.RemoveRangeCascade(entitys);
|
||||
public List<object> DeleteCascade(Expression<Func<TEntity, bool>> predicate) => _dbset.RemoveCascade(predicate);
|
||||
|
||||
public virtual TEntity Insert(TEntity entity)
|
||||
{
|
||||
@ -189,6 +192,7 @@ namespace FreeSql
|
||||
return ret;
|
||||
}
|
||||
|
||||
public virtual List<object> DeleteCascade(TKey id) => _dbset.RemoveCascade(Find(id));
|
||||
public virtual int Delete(TKey id) => Delete(CheckTKeyAndReturnIdEntity(id));
|
||||
public virtual TEntity Find(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
||||
public TEntity Get(TKey id) => _dbset.OrmSelectInternal(CheckTKeyAndReturnIdEntity(id)).ToOne();
|
||||
|
@ -85,6 +85,14 @@ namespace FreeSql
|
||||
int Delete(TEntity entity);
|
||||
int Delete(IEnumerable<TEntity> entitys);
|
||||
int Delete(Expression<Func<TEntity, bool>> predicate);
|
||||
/// <summary>
|
||||
/// 根据设置的导航属性,递归查询删除 OneToOne/OneToMany/ManyToMany 数据,并返回已删除的数据
|
||||
/// </summary>
|
||||
/// <param name="entity"></param>
|
||||
/// <returns></returns>
|
||||
List<object> DeleteCascade(TEntity entity);
|
||||
List<object> DeleteCascade(IEnumerable<TEntity> entitys);
|
||||
List<object> DeleteCascade(Expression<Func<TEntity, bool>> predicate);
|
||||
|
||||
/// <summary>
|
||||
/// 开始编辑数据,然后调用方法 EndEdit 分析出添加、修改、删除 SQL 语句进行执行<para></para>
|
||||
@ -125,6 +133,7 @@ namespace FreeSql
|
||||
TEntity Get(TKey id);
|
||||
TEntity Find(TKey id);
|
||||
int Delete(TKey id);
|
||||
List<object> DeleteCascade(TKey id);
|
||||
|
||||
#if net40
|
||||
#else
|
||||
|
Reference in New Issue
Block a user