MySQL Connector EF6

Als EF-Neuling versuche ich, Entity Framework 6 Code First mit einem MySql Server 5.6 zu verwenden, den ich auf meinem Entwicklungscomputer installiert habe.

Ich habe ein sehr kleines Testkonsolenprojekt gemacht. Ich habe die NuGet-Pakete hinzugefügt:

EntityFramework 6.0.2MySql.DataMySql.Data.Entities.EF6

Meine App.config sieht so aus:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"></provider>
    </providers>
</entityFramework>

A hat zwei Klassen:

MeinKontext:

public class MyContext : DbContext
{
    public MyContext(DbConnection connection)
        : base(connection, true)
    {
    }

    public DbSet<MyEntity> MyEntities { get; set; }
}

MyEntity:

public class MyEntity
{
    [Key]
    public int Id { get; set; }

    public string Name { get; set; }
}

Meine Hauptmethode sieht so aus:

static void Main(string[] args)
{
    using (MySqlConnection conn = new MySqlConnection("Server=127.0.0.1;Database=calibrationtest;Uid=calibration;Pwd=*******"))
    {
        using (MyContext context = new MyContext(conn))
        {
            context.MyEntities.Add(new MyEntity()
            {
                Name = "1234"
            });

            context.SaveChanges();
        }
    }
}

Wenn ich es ausführe, erhalte ich eine System.NotSupportedException:

Der Providername für die Provider-Factory vom Typ "MySql.Data.MySqlClient.MySqlClientFactory" konnte nicht ermittelt werden. Stellen Sie sicher, dass der ADO.NET-Anbieter in der Anwendungskonfiguration installiert oder registriert ist

Ich habe versucht, MySql.Data.MySqlClient.MySqlClientFactory zur App.config hinzuzufügen:

<provider invariantName="MySql.Data.MySqlClient.MySqlClientFactory" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"></provider>

Aber dann komme ich zumEntity.Core Fehler:

Das Mitglied 'Instance' des Entity Framework-Anbietertyps 'MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version = 6.8.3.0, Culture = neutral, PublicKeyToken = c5687fc88969c44d' hat kein Objekt zurückgegeben, das von 'System.Data' erbt .Entity.Core.Common.DbProviderServices '.

Was mache ich falsch?

BEARBEITEN

Ich habe versucht, die NuGet-Pakete (MySql.Data und MySql.Data.Entities.EF6) zu entfernen.

Dann habe ich die neue Version installiertdirekt von MySql und jetzt läuft der obige Testcode erfolgreich?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage