forked from ddrilling/AsbCloudServer
Refactor cacheTable.
Remove ConfigureAwait(false) for private methotds. Insert?() returns updated entity(ies).
This commit is contained in:
parent
6dc3137627
commit
1ec22744c3
@ -169,7 +169,7 @@ namespace AsbCloudInfrastructure.Services.Cache
|
|||||||
return SyncAsync(
|
return SyncAsync(
|
||||||
async (wasFree, token) =>
|
async (wasFree, token) =>
|
||||||
{
|
{
|
||||||
return wasFree ? await InternalRefreshAsync(force, token).ConfigureAwait(false) : 0;
|
return wasFree ? await InternalRefreshAsync(force, token) : 0;
|
||||||
}, token);
|
}, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -297,7 +297,7 @@ namespace AsbCloudInfrastructure.Services.Cache
|
|||||||
dbSet.Add(entity);
|
dbSet.Add(entity);
|
||||||
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
await InternalRefreshAsync(true, token).ConfigureAwait(false);
|
await InternalRefreshAsync(true, token);
|
||||||
return affected;
|
return affected;
|
||||||
}, token);
|
}, token);
|
||||||
|
|
||||||
@ -341,7 +341,7 @@ namespace AsbCloudInfrastructure.Services.Cache
|
|||||||
|
|
||||||
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
await InternalRefreshAsync(true, token).ConfigureAwait(false);
|
await InternalRefreshAsync(true, token);
|
||||||
return affected;
|
return affected;
|
||||||
}, token);
|
}, token);
|
||||||
}
|
}
|
||||||
@ -362,7 +362,7 @@ namespace AsbCloudInfrastructure.Services.Cache
|
|||||||
dbSet.RemoveRange(dbSet.Where(predicate));
|
dbSet.RemoveRange(dbSet.Where(predicate));
|
||||||
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
await InternalRefreshAsync(true, token).ConfigureAwait(false);
|
await InternalRefreshAsync(true, token);
|
||||||
return affected;
|
return affected;
|
||||||
}, token);
|
}, token);
|
||||||
|
|
||||||
@ -385,32 +385,61 @@ namespace AsbCloudInfrastructure.Services.Cache
|
|||||||
var entry = dbSet.Add(entity);
|
var entry = dbSet.Add(entity);
|
||||||
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
await InternalRefreshAsync(true, token).ConfigureAwait(false);
|
await InternalRefreshAsync(true, token);
|
||||||
return entry.Entity;
|
return entry.Entity;
|
||||||
}, token);
|
}, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int Insert(IEnumerable<TEntity> newEntities)
|
public IEnumerable<TEntity> Insert(IEnumerable<TEntity> newEntities)
|
||||||
{
|
{
|
||||||
|
if (newEntities is null)
|
||||||
|
return null;
|
||||||
|
var count = newEntities.Count();
|
||||||
|
if (count == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
return Sync(_ =>
|
return Sync(_ =>
|
||||||
{
|
{
|
||||||
dbSet.AddRange(newEntities);
|
var entries = new List<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity>>(count);
|
||||||
|
foreach (var newEntity in newEntities)
|
||||||
|
{
|
||||||
|
var entry = dbSet.Add(newEntity);
|
||||||
|
entries.Add(entry);
|
||||||
|
}
|
||||||
|
|
||||||
var affected = context.SaveChanges();
|
var affected = context.SaveChanges();
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
InternalRefresh(true);
|
InternalRefresh(true);
|
||||||
return affected;
|
else
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return entries.Select(e => e.Entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<int> InsertAsync(IEnumerable<TEntity> newEntities, CancellationToken token = default)
|
public Task<IEnumerable<TEntity>> InsertAsync(IEnumerable<TEntity> newEntities, CancellationToken token = default)
|
||||||
{
|
{
|
||||||
|
if(newEntities is null)
|
||||||
|
return null;
|
||||||
|
var count = newEntities.Count();
|
||||||
|
if (count == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
return SyncAsync(async (wasFree, token) =>
|
return SyncAsync(async (wasFree, token) =>
|
||||||
{
|
{
|
||||||
dbSet.AddRange(newEntities);
|
var entries = new List<Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity>>(count);
|
||||||
|
foreach (var newEntity in newEntities)
|
||||||
|
{
|
||||||
|
var entry = dbSet.Add(newEntity);
|
||||||
|
entries.Add(entry);
|
||||||
|
}
|
||||||
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
var affected = await context.SaveChangesAsync(token).ConfigureAwait(false);
|
||||||
if (affected > 0)
|
if (affected > 0)
|
||||||
await InternalRefreshAsync(true, token).ConfigureAwait(false);
|
await InternalRefreshAsync(true, token);
|
||||||
return affected;
|
else
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return entries.Select(e => e.Entity);
|
||||||
}, token);
|
}, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user