У меня есть приложение ASP. NET Core, которое подключается к базе данных sqlite. Хотя я использую все значения DateTime
в формате UTC (с DateTime.UtcNow
и value.ToUniversalTime()
), я все равно получаю значение datetime DateTimeKind.Unspecified
из базы данных.
Я пытался установить DateTimeKind=Utc
в строке подключения , но затем я получаю
System.ArgumentException: ключевое слово не поддерживается: 'datetimekind'
для кода
var context = services.GetRequiredService<ApplicationDbContext>();
context.Database.Migrate();
Я тоже уже попробовал это решение с:
services.AddDbContext<ApplicationDbContext>(options =>
{
var connectionString = Configuration.GetConnectionString("DatabaseConnection");
var conn = new SQLiteConnection(connectionString);
conn.Open();
var x = options.UseSqlite(
conn
);
});
, но оно по-прежнему вызывает ту же ошибку при миграции.
У меня такое ощущение, что функция Migrate
создает собственное соединение , поскольку трассировка стека выглядит так:
at Microsoft.Data.Sqlite.SqliteConnectionStringBuilder.GetIndex(String keyword)
at Microsoft.Data.Sqlite.SqliteConnectionStringBuilder.set_Item(String keyword, Object value)
at System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String value)
at Microsoft.Data.Sqlite.SqliteConnectionStringBuilder..ctor(String connectionString)
at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Exists()
at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
Можно заметить, что трассировка стека проходит через
Microsoft.Data.Sqlite.SqliteConnectionStringBuilder
Но я не знаю, почему это происходит.
Вызов миграции выглядит так:
var context = services.GetRequiredService<ApplicationDbContext>();
context.Database.Migrate();
, так что, насколько я понимаю, context
должен включать мое соединение SQLite на основе класса SQLiteConnection
.