Fix EFCore.BulkExtensions does not support Oracle

This commit is contained in:
megamanhxh 2021-08-24 11:28:04 +03:00 committed by Sipke Schoorstra
parent 6f8582c320
commit 064ddccf25
2 changed files with 11 additions and 1 deletions

View file

@ -0,0 +1,9 @@
using Microsoft.EntityFrameworkCore.Infrastructure;
namespace Elsa.Persistence.EntityFramework.Core.Extensions
{
internal static class OracleDatabaseFacadeExtensions
{
public static bool IsOracle(this DatabaseFacade database) => database.ProviderName == "Oracle.EntityFrameworkCore";
}
}

View file

@ -10,10 +10,11 @@ namespace Elsa.Persistence.EntityFramework.Core.Extensions
{
public static async Task<int> BatchDeleteWithWorkAroundAsync<T>(this IQueryable<T> queryable, DbContext elsaContext, CancellationToken cancellationToken = default) where T : class
{
if (elsaContext.Database.IsPostgres() || elsaContext.Database.IsMySql())
if (elsaContext.Database.IsPostgres() || elsaContext.Database.IsMySql() || elsaContext.Database.IsOracle())
{
// Need this workaround until https://github.com/borisdj/EFCore.BulkExtensions/issues/67
// and https://github.com/borisdj/EFCore.BulkExtensions/issues/553 is solved.
// Oracle also https://github.com/borisdj/EFCore.BulkExtensions/issues/375
var records = await queryable.ToListAsync(cancellationToken);
foreach (var @record in records)