Fix BulkUpsert for EF Core 8
This commit is contained in:
parent
b84bcdff93
commit
40fce04a14
|
|
@ -19,8 +19,13 @@ public static class QueryableExtensions
|
|||
{
|
||||
var set = dbContext.Set<TEntity>();
|
||||
var compiledKeySelector = keySelector.Compile();
|
||||
var containsLambda = keySelector.BuildContainsExpression(entities);
|
||||
var existingEntities = await set.AsNoTracking().Where(containsLambda).ToListAsync(cancellationToken);
|
||||
var containsLambda = entities.Any() ? keySelector.BuildContainsExpression(entities) : default;
|
||||
var existingEntitiesQuery = set.AsNoTracking();
|
||||
|
||||
if (containsLambda != null)
|
||||
existingEntitiesQuery = existingEntitiesQuery.Where(containsLambda);
|
||||
|
||||
var existingEntities = await existingEntitiesQuery.ToListAsync(cancellationToken);
|
||||
var entitiesToUpdate = entities.IntersectBy(existingEntities.Select(compiledKeySelector), compiledKeySelector).ToList();
|
||||
var entitiesToInsert = entities.Except(entitiesToUpdate).ToList();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue