CacheTable.Insert() methods fix

This commit is contained in:
KharchenkoVV 2021-07-20 12:28:56 +05:00
parent 1dadc96882
commit f7ed377572

View File

@ -206,7 +206,11 @@ namespace AsbCloudInfrastructure.Services.Cache
public async Task<TEntity> UpsertAsync(TEntity entity, CancellationToken token = default) public async Task<TEntity> UpsertAsync(TEntity entity, CancellationToken token = default)
{ {
var dbSet = context.Set<TEntity>(); var dbSet = context.Set<TEntity>();
var updated = dbSet.Update(entity); Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity> updated;
if (dbSet.Contains(entity))
updated = dbSet.Update(entity);
else
updated = dbSet.Add(entity);
await context.SaveChangesAsync(token).ConfigureAwait(false); await context.SaveChangesAsync(token).ConfigureAwait(false);
await RefreshAsync(token).ConfigureAwait(false); await RefreshAsync(token).ConfigureAwait(false);
return updated.Entity; return updated.Entity;
@ -217,7 +221,14 @@ namespace AsbCloudInfrastructure.Services.Cache
var dbSet = context.Set<TEntity>(); var dbSet = context.Set<TEntity>();
var upsertedEntries = new List<TEntity>(entities.Count()); var upsertedEntries = new List<TEntity>(entities.Count());
foreach (var entity in entities) foreach (var entity in entities)
upsertedEntries.Add(dbSet.Update(entity).Entity); {
Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity> updated;
if (dbSet.Contains(entity))
updated = dbSet.Update(entity);
else
updated = dbSet.Add(entity);
upsertedEntries.Add(updated.Entity);
}
context.SaveChanges(); context.SaveChanges();
Refresh(); Refresh();
return upsertedEntries; return upsertedEntries;
@ -228,7 +239,14 @@ namespace AsbCloudInfrastructure.Services.Cache
var dbSet = context.Set<TEntity>(); var dbSet = context.Set<TEntity>();
var upsertedEntries = new List<TEntity>(entities.Count()); var upsertedEntries = new List<TEntity>(entities.Count());
foreach (var entity in entities) foreach (var entity in entities)
upsertedEntries.Add(dbSet.Update(entity).Entity); {
Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry<TEntity> updated;
if (dbSet.Contains(entity))
updated = dbSet.Update(entity);
else
updated = dbSet.Add(entity);
upsertedEntries.Add(updated.Entity);
}
await context.SaveChangesAsync(token).ConfigureAwait(false); await context.SaveChangesAsync(token).ConfigureAwait(false);
await RefreshAsync(token).ConfigureAwait(false); await RefreshAsync(token).ConfigureAwait(false);
return upsertedEntries; return upsertedEntries;