Ошибка при сопоставлении списка перечислений в EF Core с массивом PostgeSQL.C#

Место общения программистов C#
Ответить
Anonymous
 Ошибка при сопоставлении списка перечислений в EF Core с массивом PostgeSQL.

Сообщение Anonymous »

У меня есть класс с коллекцией перечислений, сопоставленных с собственным перечислением PostgreSQL:

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

internal class EventStackFilter
{
// other properties omitted
public List Statuses { get; set; } = [];
}
Перечисление отображается следующим образом:

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

services.AddDbContext(options =>
{
options.UseNpgsql(
CreateConnString(variables.DatabaseName),
npsqlOptions =>
{
npsqlOptions.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery);
npsqlOptions.MapEnum();
npsqlOptions.MapEnum();
});
options.UseDataSeeding();
options.ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuted, LogLevel.Debug)));
}, ServiceLifetime.Transient);
миграция с добавлением перечисления:

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

migrationBuilder.AlterDatabase()
.Annotation("Npgsql:Enum:data_point_command_execution_state", "completed,failed,in_progress,none,unknown")
.Annotation("Npgsql:Enum:event_stack_event_status", "closed,new,taken,unknown")
.OldAnnotation("Npgsql:Enum:data_point_command_execution_state", "completed,failed,in_progress,none,unknown");

migrationBuilder.CreateTable(
name: "event_stack_filters",
columns: table => new
{
//other irrelevant properties
statuses = table.Column(type: "event_stack_event_status[]", nullable: false)
},
Использование другого сопоставленного перечисления работает нормально, но когда система раздачи данных пытается добавить данные в EventStackFilter, это приводит к ошибке:

System.NotSupportedException: имя типа данных
'_event_stack_event_status' отсутствует в вашей базе данных. Возможно,
нужно установить расширение или обновиться до более новой версии.

Я не знаю, что я здесь делаю не так

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

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

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

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

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

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