首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET核心EntityFramework不为现有的MySql数据库创建脚手架

问.NET核心EntityFramework不为现有的MySql数据库创建脚手架
EN

Stack Overflow用户
提问于 2018-02-20 23:40:44
回答 1查看 3.1K关注 0票数 1

尝试使用MySql上的说明为已经存在的脚手架-- EF核中的现有数据库数据库创建脚手架

使用EFCore2.0和MySQL.DataEntityFrameworkCore{Design} 6.10.6。当我在Package控制台中运行以下(编校)命令时:

代码语言:javascript
复制
Scaffold-DbContext "server=111.2.33.44;port=3306;user=xxx;password=yyy;database=zzz" MySql.Data.EntityFrameworkCore  -OutputDir DB -f

这将为我获得DB中的脚手架文件,DB是一个C#类库。

相反,我得到了错误:

代码语言:javascript
复制
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.

问题是,我不是试图创建一个数据库,而是实现一个已经存在的数据库的接口。

这里怎么了?

EN

回答 1

Stack Overflow用户

发布于 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的命令如下所示:

代码语言:javascript
复制
Scaffold-DbContext "your-mysql-connection-string" Pomelo.EntityFrameworkCore.MySql -OutputDir DB -f
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48895983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档