Я использую EFCore BulkExtensions 2.5.0 с Entity Framework Core 2.2.3 и EFCore.SQLite 2.2.6.
У меня есть такой код:
// Repo that throws exception on BulkInsert
public class UserRepository
{
private readonly IDbContextProvider<ReportContext> _dbContextProvider;
public async Sync(IList<User> users)
{
await _dbContextProvider.Context.BulkInserOrUpdateAsync(users);
}
}
// Poco Model
public class User
{
public string Id {get;set;}
public string Name {get; set;}
}
// Simple DbContext
public class ReportsContext : DbContext
{
public DbSet<User> Users { get; set; }
}
Мой код приложения (который использует EFCore.Sql
) прекрасно работает. Но когда мой тестовый код выполняется с использованием SQLite в памяти, я получаю исключение:
Нет такой таблицы: INFORMATION_SCHEMA.COLUMNS
Microsoft.Data.Sqlite.SqliteException: Ошибка SQLite 1 : 'нет такой таблицы: INFORMATION_SCHEMA.COLUMNS'.
в Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForR C (Int32 r c, sqlite3 db)
в Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements (таймер секундомера) + MoveNext
в Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader (поведение CommandBehavior)
в Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsyn c (поведение CommandBehavior, CancellationToken cancellationToken)
в Microsoft. SqliteCommand.ExecuteDbDataReaderAsyn c (поведение CommandBehavior, CancellationToken cancellationToken)
в EFCore.BulkExtensions.TableInfo.CheckHasIdentityAsyn c (контекст DbContext, CancellationToken.Teль контекст, IList 1 entities, TableInfo tableInfo, OperationType operationType, Action
1 прогресс, CancellationToken cancellationToken)
в MyCode.Repositories.UserRepository. <> c__DisplayClass5_0. d.MoveNext () в C: \ projects \ MyCode \ Repositories \ UserRepository.cs: строка 48
INFORMATION_SCHEMA.COLUMNS
не является частью моей модели данных и не является чем-то, что я Я пытаюсь создать или работать с. Нужно ли мне настраивать или настраивать EF Core или SQLite для поддержки массовых операций при работе в режиме памяти?
Я пытался включить ведение журнала EF Core и могу видеть мои Db Модель обрабатывается и таблицы создаются, но нет вывода на массовые операции, поэтому я не уверен, что сгенерированные операторы SQL ищут эту таблицу Information_Schema.Columns
.