|
|
|
@ -40,13 +40,13 @@ namespace Volo.Abp.Domain.Repositories |
|
|
|
{ |
|
|
|
foreach (var entity in GetQueryable().Where(predicate).ToList()) |
|
|
|
{ |
|
|
|
Delete(entity); |
|
|
|
Delete(entity, autoSave); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public virtual Task DeleteAsync(Expression<Func<TEntity, bool>> predicate, bool autoSave = false, CancellationToken cancellationToken = default) |
|
|
|
{ |
|
|
|
Delete(predicate); |
|
|
|
Delete(predicate, autoSave); |
|
|
|
return Task.CompletedTask; |
|
|
|
} |
|
|
|
|
|
|
|
@ -66,19 +66,26 @@ namespace Volo.Abp.Domain.Repositories |
|
|
|
|
|
|
|
return query; |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual IQueryable<TEntity> IncludeDetails(IQueryable<TEntity> queryable) |
|
|
|
{ |
|
|
|
return queryable; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public abstract class RepositoryBase<TEntity, TKey> : RepositoryBase<TEntity>, IRepository<TEntity, TKey> |
|
|
|
where TEntity : class, IEntity<TKey> |
|
|
|
{ |
|
|
|
public virtual TEntity Find(TKey id) |
|
|
|
public virtual TEntity Find(TKey id, bool includeDetails = true) |
|
|
|
{ |
|
|
|
return GetQueryable().FirstOrDefault(EntityHelper.CreateEqualityExpressionForId<TEntity, TKey>(id)); |
|
|
|
return includeDetails |
|
|
|
? IncludeDetails(GetQueryable()).FirstOrDefault(EntityHelper.CreateEqualityExpressionForId<TEntity, TKey>(id)) |
|
|
|
: GetQueryable().FirstOrDefault(EntityHelper.CreateEqualityExpressionForId<TEntity, TKey>(id)); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual TEntity Get(TKey id) |
|
|
|
public virtual TEntity Get(TKey id, bool includeDetails = true) |
|
|
|
{ |
|
|
|
var entity = Find(id); |
|
|
|
var entity = Find(id, includeDetails); |
|
|
|
|
|
|
|
if (entity == null) |
|
|
|
{ |
|
|
|
@ -88,30 +95,30 @@ namespace Volo.Abp.Domain.Repositories |
|
|
|
return entity; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual Task<TEntity> GetAsync(TKey id, CancellationToken cancellationToken = default) |
|
|
|
public virtual Task<TEntity> GetAsync(TKey id, bool includeDetails = true, CancellationToken cancellationToken = default) |
|
|
|
{ |
|
|
|
return Task.FromResult(Get(id)); |
|
|
|
return Task.FromResult(Get(id, includeDetails)); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual Task<TEntity> FindAsync(TKey id, CancellationToken cancellationToken = default) |
|
|
|
public virtual Task<TEntity> FindAsync(TKey id, bool includeDetails = true, CancellationToken cancellationToken = default) |
|
|
|
{ |
|
|
|
return Task.FromResult(Find(id)); |
|
|
|
return Task.FromResult(Find(id, includeDetails)); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual void Delete(TKey id, bool autoSave = false) |
|
|
|
{ |
|
|
|
var entity = Find(id); |
|
|
|
var entity = Find(id, includeDetails: false); |
|
|
|
if (entity == null) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
Delete(entity); |
|
|
|
Delete(entity, autoSave); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual Task DeleteAsync(TKey id, bool autoSave = false, CancellationToken cancellationToken = default) |
|
|
|
{ |
|
|
|
Delete(id); |
|
|
|
Delete(id, autoSave); |
|
|
|
return Task.CompletedTask; |
|
|
|
} |
|
|
|
} |
|
|
|
|