Entity framework core Pomelo实体框架核心支架在MySQL数据库中失败;无法添加批注,因为已存在同名批注。”;

Entity framework core Pomelo实体框架核心支架在MySQL数据库中失败;无法添加批注,因为已存在同名批注。”;,entity-framework-core,scaffolding,pomelo-entityframeworkcore-mysql,db-first,Entity Framework Core,Scaffolding,Pomelo Entityframeworkcore Mysql,Db First,当我尝试使用以下方法构建现有MySQL DB时: Scaffold DbContext“server=server;user=user;password=pw;database=db”“Pomelo.EntityFrameworkCore.MySql”-OutputDir EF-f 我得到以下错误: System.InvalidOperationException: The annotation 'MySql:IndexPrefixLength' cannot be added because

当我尝试使用以下方法构建现有MySQL DB时:

Scaffold DbContext“server=server;user=user;password=pw;database=db”“Pomelo.EntityFrameworkCore.MySql”-OutputDir EF-f

我得到以下错误:

System.InvalidOperationException: The annotation 'MySql:IndexPrefixLength' cannot be added because an annotation with the same name already exists**.
   at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(String name, Annotation annotation)
   at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(String name, Object value)
   at Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.Microsoft.EntityFrameworkCore.Metadata.IMutableAnnotatable.AddAnnotation(String name, Object value)
   at Microsoft.EntityFrameworkCore.MutableAnnotatableExtensions.AddAnnotations(IMutableAnnotatable annotatable, IEnumerable`1 annotations)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitIndex(EntityTypeBuilder builder, DatabaseIndex index)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitIndexes(EntityTypeBuilder builder, ICollection`1 indexes)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitTable(ModelBuilder modelBuilder, DatabaseTable table)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitTables(ModelBuilder modelBuilder, ICollection`1 tables)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitDatabaseModel(ModelBuilder modelBuilder, DatabaseModel databaseModel)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.Create(DatabaseModel databaseModel, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerScaffolder.ScaffoldModel(String connectionString, DatabaseModelFactoryOptions databaseOptions, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions)
   at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String outputContextDir, String dbContextClassName, IEnumerable`1 schemas, IEnumerable`1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String outputDbContextDir, String dbContextClassName, IEnumerable`1 schemaFilters, IEnumerable`1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_0.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
The annotation 'MySql:IndexPrefixLength' cannot be added because an annotation with the same name already exists.*
System.invalidoOperationException:无法添加批注“MySql:IndexPrefixLength”,因为已存在同名批注**。
位于Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(字符串名称,注释)
位于Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.AddAnnotation(字符串名称,对象值)
位于Microsoft.EntityFrameworkCore.Infrastructure.Annotatable.Microsoft.EntityFrameworkCore.Metadata.IMutableAnnotatable.AddAnnotation(字符串名称,对象值)
位于Microsoft.EntityFrameworkCore.MutableAnnotataTableExtensions.AddAnnotations(IMutableAnnotatable annotatable,IEnumerable`1 annotations)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitIndex(EntityTypeBuilder构建器,数据库索引)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitIndexes(EntityTypeBuilder builder,ICollection`1索引)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitTable(ModelBuilder ModelBuilder,DatabaseTable表)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitTables(ModelBuilder ModelBuilder,ICollection`1表)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.VisitDatabaseModel(ModelBuilder ModelBuilder,DatabaseModel DatabaseModel DatabaseModel)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.Create(DatabaseModel DatabaseModel,布尔值useDatabaseNames)
位于Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseeEngineerCafFolder.ScaffoldModel(字符串连接字符串、数据库模型工厂选项数据库选项、模型ReverseeEngineerOptions模型选项、模型代码生成选项代码选项)
位于Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(字符串提供程序、字符串连接字符串、字符串outputDir、字符串outputContextDir、字符串dbContextClassName、IEnumerable`1模式、IEnumerable`1表、布尔useDataAnnotations、布尔重写文件、布尔useDatabaseNames)
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(字符串提供程序、字符串连接字符串、字符串输出目录、字符串输出目录ContextDir、字符串dbContextClassName、IEnumerable`1架构过滤器、IEnumerable`1表格过滤器、布尔useDataAnnotations、布尔重写文件、布尔useDatabaseNames)
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.c__DisplayClass0_0.b_0()中
在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.c__DisplayClass3_0`1.b__0()中
位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作)
无法添加批注“MySql:IndexPrefixLength”,因为已存在同名批注*

我使用Microsoft软件包成功地为同一项目中的同一数据库搭建了脚手架,没有任何问题。

Pomelo团队已确认该问题是一个bug。 如果一列上有多个索引,并且两个索引都使用索引前缀,则会发生此异常。修复程序将很快发布:


哪个提供程序版本?
所有运行时;建设;本地人;内容文件;分析仪;构建可传递的