mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
- 调整 DbSet/Repository DeleteCascadeByDatabase/Delete 区别于数据库/内存的级联删除;#609
This commit is contained in:
@ -46,7 +46,7 @@ namespace FreeSql
|
||||
_optionsPriv = new DbContextOptions();
|
||||
if (FreeSqlDbContextExtensions._dicSetDbContextOptions.TryGetValue(OrmOriginal.Ado.Identifier, out var opt))
|
||||
{
|
||||
_optionsPriv.EnableAddOrUpdateNavigate = opt.EnableAddOrUpdateNavigate;
|
||||
_optionsPriv.EnableCascadeSave = opt.EnableCascadeSave;
|
||||
_optionsPriv.EnableGlobalFilter = opt.EnableGlobalFilter;
|
||||
_optionsPriv.NoneParameter = opt.NoneParameter;
|
||||
_optionsPriv.OnEntityChange = opt.OnEntityChange;
|
||||
@ -225,29 +225,29 @@ namespace FreeSql
|
||||
}
|
||||
#if net40
|
||||
#else
|
||||
public Task AddAsync<TEntity>(TEntity data) where TEntity : class
|
||||
public Task AddAsync<TEntity>(TEntity data, CancellationToken cancellationToken = default) where TEntity : class
|
||||
{
|
||||
CheckEntityTypeOrThrow(typeof(TEntity));
|
||||
return this.Set<TEntity>().AddAsync(data);
|
||||
return this.Set<TEntity>().AddAsync(data, cancellationToken);
|
||||
}
|
||||
public Task AddRangeAsync<TEntity>(IEnumerable<TEntity> data) where TEntity : class => this.Set<TEntity>().AddRangeAsync(data);
|
||||
public Task AddRangeAsync<TEntity>(IEnumerable<TEntity> data, CancellationToken cancellationToken = default) where TEntity : class => this.Set<TEntity>().AddRangeAsync(data, cancellationToken);
|
||||
|
||||
public Task UpdateAsync<TEntity>(TEntity data) where TEntity : class
|
||||
public Task UpdateAsync<TEntity>(TEntity data, CancellationToken cancellationToken = default) where TEntity : class
|
||||
{
|
||||
CheckEntityTypeOrThrow(typeof(TEntity));
|
||||
return this.Set<TEntity>().UpdateAsync(data);
|
||||
return this.Set<TEntity>().UpdateAsync(data, cancellationToken);
|
||||
}
|
||||
public Task UpdateRangeAsync<TEntity>(IEnumerable<TEntity> data) where TEntity : class => this.Set<TEntity>().UpdateRangeAsync(data);
|
||||
public Task UpdateRangeAsync<TEntity>(IEnumerable<TEntity> data, CancellationToken cancellationToken = default) where TEntity : class => this.Set<TEntity>().UpdateRangeAsync(data, cancellationToken);
|
||||
|
||||
public Task AddOrUpdateAsync<TEntity>(TEntity data) where TEntity : class
|
||||
public Task AddOrUpdateAsync<TEntity>(TEntity data, CancellationToken cancellationToken = default) where TEntity : class
|
||||
{
|
||||
CheckEntityTypeOrThrow(typeof(TEntity));
|
||||
return this.Set<TEntity>().AddOrUpdateAsync(data);
|
||||
return this.Set<TEntity>().AddOrUpdateAsync(data, cancellationToken);
|
||||
}
|
||||
public Task SaveManyAsync<TEntity>(TEntity data, string propertyName) where TEntity : class
|
||||
public Task SaveManyAsync<TEntity>(TEntity data, string propertyName, CancellationToken cancellationToken = default) where TEntity : class
|
||||
{
|
||||
CheckEntityTypeOrThrow(typeof(TEntity));
|
||||
return this.Set<TEntity>().SaveManyAsync(data, propertyName);
|
||||
return this.Set<TEntity>().SaveManyAsync(data, propertyName, cancellationToken);
|
||||
}
|
||||
#endif
|
||||
#endregion
|
||||
|
@ -21,16 +21,16 @@ namespace FreeSql
|
||||
/// - 属性集合为空时(!=null),删除他们的所有关联数据(中间表)<para></para>
|
||||
/// - 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录
|
||||
/// </summary>
|
||||
public bool EnableAddOrUpdateNavigate { get; set; } = false;
|
||||
public bool EnableCascadeSave { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 因增加支持 OneToOne 级联保存,请了解机制,已改名为 EnableAddOrUpdateNavigate
|
||||
/// 因增加支持 OneToOne 级联保存,和基于内存的级联删除,已改名为 EnableCascadeSave
|
||||
/// </summary>
|
||||
[Obsolete("因增加支持 OneToOne 级联保存,请了解机制,已改名为 EnableAddOrUpdateNavigate")]
|
||||
[Obsolete("因增加支持 OneToOne 级联保存,和基于内存的级联删除,已改名为 EnableCascadeSave")]
|
||||
public bool EnableAddOrUpdateNavigateList
|
||||
{
|
||||
get => EnableAddOrUpdateNavigate;
|
||||
set => EnableAddOrUpdateNavigate = value;
|
||||
get => EnableCascadeSave;
|
||||
set => EnableCascadeSave = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
Reference in New Issue
Block a user