Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 42P07:更新Postgre实体框架核心数据库时出错_Entity Framework_.net Core_Entity Framework Core_Entity Framework Migrations - Fatal编程技术网

Entity framework 42P07:更新Postgre实体框架核心数据库时出错

Entity framework 42P07:更新Postgre实体框架核心数据库时出错,entity-framework,.net-core,entity-framework-core,entity-framework-migrations,Entity Framework,.net Core,Entity Framework Core,Entity Framework Migrations,我试图使用EntityFramework迁移更新数据库,但此错误崩溃。我开始看他们在这个问题上写了些什么,但到处都是相同的东西,没有使用在初创企业中重新创建,就是这样。我在创业公司中没有类似的东西,以下是创业公司的代码: services.AddDbContext<ApplicationDbContext>(); services.AddIdentity<IdentityUserModel, IdentityRole>(

我试图使用EntityFramework迁移更新数据库,但此错误崩溃。我开始看他们在这个问题上写了些什么,但到处都是相同的东西,没有使用在初创企业中重新创建,就是这样。我在创业公司中没有类似的东西,以下是创业公司的代码:

services.AddDbContext<ApplicationDbContext>();

            services.AddIdentity<IdentityUserModel, IdentityRole>(
                options => options.SignIn.RequireConfirmedAccount = false
                )
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();
services.AddDbContext();
服务附加性(
选项=>options.SignIn.RequireConfirmedAccount=false
)
.AddEntityFrameworkStores()
.AddDefaultTokenProviders();
当然,添加授权,添加提供者,等等。但是,只要我尝试开始迁移,错误就会出现在下面

谁面对这个问题或知道如何解决它,请告诉我

非常感谢您的回答

fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      CREATE TABLE "AspNetRoles" (
          "Id" text NOT NULL,
          "Name" character varying(256) NULL,
          "NormalizedName" character varying(256) NULL,
          "ConcurrencyStamp" text NULL,
          CONSTRAINT "PK_AspNetRoles" PRIMARY KEY ("Id")
      );
Failed executing DbCommand (7ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
CREATE TABLE "AspNetRoles" (
    "Id" text NOT NULL,
    "Name" character varying(256) NULL,
    "NormalizedName" character varying(256) NULL,
    "ConcurrencyStamp" text NULL,
    CONSTRAINT "PK_AspNetRoles" PRIMARY KEY ("Id")
);
Npgsql.PostgresException (0x80004005): 42P07: отношение "AspNetRoles" уже существует
   at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
   at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
   at Npgsql.NpgsqlDataReader.NextResult()
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlCommand.ExecuteNonQuery(Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlCommand.ExecuteNonQuery()
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
   at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection)
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
  Exception data:
    Severity: ОШИБКА
    SqlState: 42P07
    MessageText: отношение "AspNetRoles" уже существует
    File: d:\pginstaller.auto\postgres.windows-x64\src\backend\catalog\heap.c
    Line: 1094
    Routine: heap_create_with_catalog
42P07: отношение "AspNetRoles" уже существует
失败:Microsoft.EntityFrameworkCore.Database.Command[20102]
执行DbCommand失败(7ms)[参数=[],命令类型='Text',命令超时='30']
创建表“AspNetRoles”(
“Id”文本不为空,
“名称”字符可变(256)空,
“NormalizedName”字符可变(256)空,
“ConcurrencyStamp”文本为空,
约束“PK_AspNetRoles”主键(“Id”)
);
执行DbCommand失败(7ms)[参数=[],命令类型='Text',命令超时='30']
创建表“AspNetRoles”(
“Id”文本不为空,
“名称”字符可变(256)空,
“NormalizedName”字符可变(256)空,
“ConcurrencyStamp”文本为空,
约束“PK_AspNetRoles”主键(“Id”)
);
Npgsql.postgresception(0x80004005):42P07:AspNetRoles
在Npgsql.NpgsqlConnector.g__ReadMessageLong | 194_0(NpgsqlConnector连接器、布尔异步、DataRowLoadingMode DataRowLoadingMode、布尔读取通知、布尔isReadingPrependedMessage)
位于Npgsql.NpgsqlDataReader.NextResult(布尔异步、布尔isConsuming、CancellationToken CancellationToken)
在Npgsql.NpgsqlDataReader.NextResult()中
在Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior行为、布尔异步、CancellationToken CancellationToken)
在Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior行为、布尔异步、CancellationToken CancellationToken)
在Npgsql.NpgsqlCommand.ExecuteOnQuery(布尔异步,CancellationToken CancellationToken)
在Npgsql.NpgsqlCommand.ExecuteNonQuery()处
位于Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteOnQuery(RelationalCommandParameterObject parameterObject)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteOnQuery(IRelationalConnection连接,iRelationalYDictionary`2参数值)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecutionQuery(IEnumerable`1 migrationCommands,IRelationalConnection)
位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串targetMigration)
位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(字符串targetMigration、字符串connectionString、字符串contextType)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(字符串targetMigration、字符串connectionString、字符串contextType)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.b_0()中
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
异常数据:
严重性:ББББА
SqlState:42P07
消息文本:AspNetRoles
文件:d:\pginstaller.auto\postgres.windows-x64\src\backend\catalog\heap.c
电话号码:1094
例程:使用目录堆创建
42P07:AspNetRoles
此错误似乎是Postgres中的“重复关系”。这意味着您可能正在尝试重新创建已存在的数据库表。您应该仔细检查您的迁移-可能出于某种原因,它试图重新创建一个已经存在的数据库

另一个原因可能是迁移和数据库之间的某种不同步——例如,可能是其他人手动创建了表