Настройка DateTimeKind для базы данных SQLite в ASP.NET Core с Entity FrameworkC#

Место общения программистов C#
Ответить
Anonymous
 Настройка DateTimeKind для базы данных SQLite в ASP.NET Core с Entity Framework

Сообщение Anonymous »

У меня есть приложение ASP.NET Core, которое подключается к базе данных sqlite. Хотя я использую все значения DateTime в формате UTC (с DateTime.UtcNow и value.ToUniversalTime()), я все равно получаю значение даты и времени DateTimeKind.Unspecified из базы данных.

Я пытался установить DateTimeKind=Utc в строке подключения, но затем получаю


System.ArgumentException: ключевое слово не поддерживается: 'datetimekind'


для кода

Код: Выделить всё

var context = services.GetRequiredService();
context.Database.Migrate();
Я также уже пробовал это решение:

Код: Выделить всё

services.AddDbContext(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();
context.Database.Migrate();
чтобы я понял, контекст должен включать мое соединение SQLite на основе класса SQLiteConnection.


Подробнее здесь: https://stackoverflow.com/questions/624 ... -framework
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»