#c# #postgresql #entity-framework-core #temporal-tables
#c# #postgresql #сущность-фреймворк-ядро #временные таблицы
Вопрос:
Я использую PostgreSQL в качестве реляционной базы данных для своего проекта EF Core 6, и я не могу понять, как заставить временные таблицы работать с PostgreSQL после запуска миграции. Это работает нормально, если я использовал для этого SQL Server, но я хотел бы заставить его работать в PostgreSQL.
Поставщик, который я использую для EFCore: https://www.npgsql.org/efcore /
Я следую этому руководству для временных таблиц для EF Core 6 https://devblogs.microsoft.com/dotnet/prime-your-flux-capacitor-sql-server-temporal-tables-in-ef-core-6-0/
Все таблицы были созданы, но не временные таблицы / Системные версии.
Код:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseNpgsql("Host=my_host;Database=my_db;Username=my_user;Password=my_pw");}
Временные таблицы с использованием modelbuilder
modelBuilder.Entity<Car>().ToTable("Car", c => c.IsTemporal());
Я что-нибудь забыл? Также не похоже, что временная таблица создается в самом моментальном снимке миграции / модели
Комментарии:
1. В PostgreSQL есть временные таблицы?
2. @TheBatman Да, я имею в виду, что Postgre должен поддерживать временные таблицы?
Ответ №1:
Я не думаю, что PostgreSQL поддерживает временные таблицы из коробки, но функциональность может быть включена с помощью расширения, и это может позволить вам создавать таблицы с помощью EF Core.
Код расширения можно найти здесь: https://github.com/arkhipov/temporal_tables
Комментарии:
1. Поставщик EF должен поддерживать сторонние расширения, а AFAIK NpgSQL этого не делает