问题描述
我有一个与另一个IdentityServer4(包含Identity Core支持的快速入门)一起运行的asp.net mvc项目,但是我无法更新数据库,也无法为它添加种子。我正在使用Core。
我关注了this tuto
因此,首先,我无法更新de DB,出现此错误:
system.invalidOperationException:更改对象的IDENTITY属性 列,则需要删除该列并重新创建。在 Microsoft.EntityFrameworkCore.Migrations.sqlServerMigrationssqlGenerator.Generate(AlterColumnoperation 操作,IModel模型,MigrationCommandListBuilder构建器)位于 Microsoft.EntityFrameworkCore.Migrations.MigrationssqlGenerator。 c。 b__71_4(MigrationssqlGenerator g,Migrationoperation o,IModel m,MigrationCommandListBuilder b)
在 Microsoft.EntityFrameworkCore.Migrations.MigrationssqlGenerator.Generate(Migrationoperation 操作,IModel模型,MigrationCommandListBuilder构建器)位于 Microsoft.EntityFrameworkCore.Migrations.sqlServerMigrationssqlGenerator.Generate(Migrationoperation 操作,IModel模型,MigrationCommandListBuilder构建器)位于 Microsoft.EntityFrameworkCore.Migrations.MigrationssqlGenerator.Generate(IReadOnlyList1 operations,IModel model) at Microsoft.EntityFrameworkCore.Migrations.sqlServerMigrationssqlGenerator.Generate(IReadOnlyList
1 操作,IModel模型) Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.GenerateUpsql(迁移 迁移) Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator。 c__displayClass15_2.b__2() 在 Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串 targetMigration) Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration,字符串contextType)位于 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase。 c__displayClass0_0。 b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作 操作)要更改列的IDENTITY属性,该列需要 删除并重新创建。
第二件事,我意识到startup.cs中的seed方法无效,种子返回false
尝试 { var seed = args.Contains(“ / seed”); 如果(种子) { args = args.Except(new [] {“ / seed”})。ToArray(); }
var host = CreateHostBuilder(args).Build(); if (seed) { Log.@R_753_4045@ion("seeding database..."); var config = host.Services.GetrequiredService<IConfiguration>(); var connectionString = config.GetConnectionString("DefaultConnection"); SeedData.EnsureSeedData(connectionString); Log.@R_753_4045@ion("Done seeding database."); return 0; }
我不知道是否有人已经使用过该老师,但确实会有一些帮助:p Thx
解决方法
我认为您需要删除数据库并重新创建它,然后它才能工作。
这个question的答案很好地总结了EntityFramework核心将给您的生产带来的痛苦。