.Net Core 2.0 Database First Approach Scaffold-DbContext of Mysql DB

我的梦境 提交于 2019-11-30 03:34:40

问题


I am developing WEB API in .Net Core 2.0 with MySQL DB. I am trying to scaffolding MySQL DB. I have follow This link (MySQL Official Site) but when I fire scaffolding command I getting error both I have mention below, please do let me know if I am doing anything wrong. Command For Scaffolding(firing in Package Manager Console)

Scaffold-DbContext "server=localhost;port=3306;user=root;password=darshan7826;database=sakila" MySql.Data.EntityFrameworkCore -OutputDir sakila -f

Error on executing above command

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.

回答1:


After digging i found that .Net Core 2.0 Mysql Connector is not working properly and after some search and RnD i found Pomelo Foundation from Stack overflow i tried it and it works.




回答2:


Taking a look at the official sourcecode for the MySQL Connector for .Net, you can see that it's not complete yet due to this:

public DatabaseModel Create(string connectionString, 
    IEnumerable<string> tables, IEnumerable<string> schemas)
{
  throw new NotImplementedException();
}

You may want to open up a bug report on the official bug tracker.

Alternatively, there does seem to be a much newer beta version that you could look at trying. https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/8.0.9-dmr




回答3:


You should run this (from Package-Manager-Console):

Scaffold-DbContext "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;" 
MySql.Data.EntityFrameworkCore -OutputDir Models

or use:

dotnet ef dbcontext scaffold

Note: You should be at the project in which MySql.Data.EntityFrameworkCore NuGet package has been added.



来源:https://stackoverflow.com/questions/47952803/net-core-2-0-database-first-approach-scaffold-dbcontext-of-mysql-db

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!