Использование временных таблиц с EF6 — PostgreSQL

#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 этого не делает