无法使用 Entity Framework Core 3.1.3 更新数据库

Can not update database with Entity Framework Core 3.1.3

我将 EF Core 用于 ASP.Net 网络 API 应用程序,并尝试从我的模型(基本 Microsoft 文档示例)创建 PostgreSQL 数据库

我设法使用“A​​dd-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 »

好的。所以,问题是我想使用 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)));
        }