Не удается обновить базу данных с помощью Entity Framework Core 3.1.3 - PullRequest
0 голосов
/ 22 апреля 2020

Я использую EF Core для ASP. Net приложения веб-API и пытаюсь создать базу данных PostgreSQL из моей модели (Basi c Пример документации Microsoft)

Я управляю создать миграцию с « Add-Migration », но следующий шаг, когда я делаю « Update-Database », у меня появляется эта ошибка:

> fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
>   Failed executing DbCommand (15ms) [Parameters=[], CommandType='Text',
>   CommandTimeout='30'] CREATE TABLE "Blogs" (
>       "BlogId" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY,
>       "Url" text NULL,
>       CONSTRAINT "PK_Blogs" PRIMARY KEY ("BlogId") );
> Npgsql.PostgresException (0x80004005): 42601: erreur de syntaxe sur ou près de « GENERATED »

1 Ответ

0 голосов
/ 24 апреля 2020

Хорошо. Итак, проблема заключалась в том, что я хотел использовать PostgreSQL 9.4, но EF Core 3 поддерживает только от PostgreSQL 10 и выше.

Решение состоит в том, чтобы сказать, что вы используете версию 9.4 с добавлением опция для контекста.

Пример на Startup.cs:

services.AddDbContext<MyContext>(options =>
                options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"), o => o.SetPostgresVersion(9, 4)));

Или на файл контекста:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"), o => o.SetPostgresVersion(9, 4)));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...