У меня какая-то проблема с BulkInsert на моей OracleDB. Мне нужно вставить пару тысяч объектов, поэтому я решил использовать EF.BulkInsert.Oracle, добавленный Nuget, который является расширением EF6.BulkInsert для Oracle.
private IOracleDbContext _context;//Class property
//method body:
EF6.BulkInsert.ProviderFactory.Register<EF6.BulkInsert.Providers.OracleBulkInsertProvider>("BulkInsertProvider");
using (var context = (OracleDbContext)_context)
{
using (var dbContextTransaction = context.Database.BeginTransaction())
{
try
{
//Preparing list of objects
var opt = new EF6.BulkInsert.BulkInsertOptions();
opt.Connection = context.Database.Connection;
await context.BulkInsertAsync<ObjectType>(ObjectList,opt);
await context.SaveChangesAsync();
dbContextTransaction.Commit();
stopwatch.Stop();
}
catch (Exception ex)
{
dbContextTransaction.Rollback();
throw ex;
}
}
}
Не добавляя opt (объект BulkInsertOptions) в качестве параметра BulkInsert, он пытается соединиться с SQLServer (которого не существует, поэтому я получаю ошибку соединения). После добавления этого BulkOptions с подключением я получаю исключение, что подключение уже является частью транзакции: /
Традиционный способ (_context.TableName.Add ()), конечно, работает, но занимает недопустимое количество времени.
Есть идеи, что я здесь не так сделал?