尝试使用MySql上的说明为已经存在的脚手架-- EF核中的现有数据库数据库创建脚手架
使用EFCore2.0和MySQL.DataEntityFrameworkCore{Design} 6.10.6。当我在Package控制台中运行以下(编校)命令时:
Scaffold-DbContext "server=111.2.33.44;port=3306;user=xxx;password=yyy;database=zzz" MySql.Data.EntityFrameworkCore -OutputDir DB -f这将为我获得DB中的脚手架文件,DB是一个C#类库。
相反,我得到了错误:
System.NotImplementedException: The method or operation is not implemented.
at MySql.Data.EntityFrameworkCore.Scaffolding.Internal.MySQLDatabaseModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas)
at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, Boolean useDatabaseNames)
at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ModelScaffolder.Generate(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, String projectPath, String outputPath, String rootNamespace, String contextName, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, 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 dbContextClassName, IEnumerable`1 schemaFilters, IEnumerable`1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_1.<.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 method or operation is not implemented.问题是,我不是试图创建一个数据库,而是实现一个已经存在的数据库的接口。
这里怎么了?
发布于 2018-04-13 18:14:13
目前,包MySql.Data.EntityFrameworkCore不支持脚手架,我正在发布并提高NotImplementedException。
要从MySQL数据库构建实体的脚手架,您可以使用替代包Pomelo.EntityFrameworkCore.MySql (请阅读关于手动将DotNetCliToolReference添加到Microsoft.EntityFrameworkCore.Tools.DotNet的入门部分)。
使用Pomelo.EntityFrameworkCore.MySql,Package Manager Console的命令如下所示:
Scaffold-DbContext "your-mysql-connection-string" Pomelo.EntityFrameworkCore.MySql -OutputDir DB -fhttps://stackoverflow.com/questions/48895983
复制相似问题