wake-up-neo.com

.Net Core 2.0-Datenbank Erster Ansatz Scaffold-DbContext von Mysql DB

Ich entwickle WEB-API in .Net Core 2.0 mit MySQL DB. Ich versuche, MySQL DB zu rüsten. Ich habe folgen This link (MySQL Official Site) aber wenn ich einen Gerüstbefehl abfeuere, bekomme ich einen Fehler. Beide habe ich unten erwähnt. Lass es mich wissen, wenn ich etwas falsch mache Package Manager Console)

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

Fehler beim Ausführen des obigen Befehls

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.
8
Darshan Dave

Nach dem Graben habe ich festgestellt, dass .Net Core 2.0 Mysql Connector nicht ordnungsgemäß funktioniert Nach einiger Suche und RND fand ich Pomelo Foundation aus Stack-Überlauf.

7
Darshan Dave

Wenn Sie sich den offiziellen Quellcode für den MySQL Connector für .Net ansehen, können Sie feststellen, dass er aus diesem Grund noch nicht vollständig ist:

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

Möglicherweise möchten Sie einen Fehlerbericht über den offiziellen Bugtracker öffnen.

Alternativ scheint es eine viel neuere Beta-Version zu geben, die Sie beim Versuch ausprobieren könnten. https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/8.0.9-dmr

4
DavidG

Sie sollten dies (von Package-Manager-Console) aus ausführen: 

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

oder verwenden Sie: 

dotnet ef dbcontext scaffold

Hinweis : Sie sollten sich an dem Projekt befinden, in dem MySql.Data.EntityFrameworkCore NuGet-Paket hinzugefügt wurde.

0
M. Artem