Ich baue eine ASP.NET Core 1.1.0-Anwendung, die mit Entity Framework Core, die ich in Visual Studio 2015 baue, auf eine vorhandene MySQL-Datenbank zugreifen muss mit den neuesten Updates. Ich begann mit dem "offiziellen" MySQL-Provider (MySql.Data.EntityFrameworkCore), habe aber das gleiche Problem mit dem Pomelo-Paket (Pomelo.EntityFrameworkCore.MySql).NotImplemented Ausnahmen mit MySQL Provider in ASP.NET Core Mit EF Core
Das Context-Objekt, das in meinen Home-Controller injiziert wird, hat alle Arten von NotImplemented-Ausnahmen, wie Sie im Bild sehen können. Members ist eine meiner DBSet-Sammlungen, die das Member POCO verwenden. (Übrigens, ich plane nicht, Migrationen zu verwenden, das ist also kein Faktor.) Dies ist der Status des Kontextobjekts, sobald es in den Controller injiziert wird, bevor ich überhaupt versuche, auf Daten zuzugreifen.
Das vollständige Detail einer typischen Nachricht ist:
((Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure) this.db.Members) .Instance ' eine Ausnahme vom Typ warf' System.NotImplementedException
ich glaube nicht, dass es etwas sehr interessant in meiner project.json Datei, aber die entsprechenden Linien sind:
"Pomelo.EntityFrameworkCore.MySql": "1.1.0",
"Pomelo.EntityFrameworkCore.MySql.Design": "1.1.0"
In Startup.cs im ConfigureServices Methode, habe ich diese Aussagen:
string connectionString = Configuration.GetConnectionString("ManageRCNConnection");
services.AddDbContext<MembersContext>(options => options.UseMySql(connectionString));
Dinge sind an diesem Punkt ziemlich einfach.
Bisher hat mich mein Google-Foo enttäuscht, um herauszufinden, was los ist.
Kann mir jemand einen Hinweis geben, was das Problem ist?
Danke!
Update: Wenn ich die Fehler in der Constructure ignoriere, wie @Tseng suggeriert, bekomme ich Fehler beim ersten Mal, wenn ich versuche, eine Entität aus der Datenbank zu bekommen.
Hier ist der Code für meine MembersContext. Ich habe einige Eigenschaften entfernt, aber es sind nur mehr DbSet-Sammlungen.
public class MembersContext : DbContext
{
public MembersContext(DbContextOptions<MembersContext> options) : base(options)
{ }
public DbSet<Member> Members { get; set; }
public DbSet<FamilyMember> FamilyMembers { get; set; }
public DbSet<Membership> Memberships { get; set; }
...
}
Ich bin kein Zusammenhang Fabrik verwendet wird, könnte das das Problem sein?
Was genau ist Ihre Frage/Problem? Sie sollten die Ausnahmen der Debug-Ansicht nicht zu ernst nehmen, es sei denn, Sie müssen auf diese Eigenschaften/Methoden zugreifen. Visual Studio Debugger wertet alle Eigenschaften aus, wenn sie in der Debug-Ansicht aufgefaltet werden. Wenn einige von ihnen nicht implementiert sind, ist kein schlechtes Zeichen erforderlich. – Tseng
Allerdings sollte angemerkt werden, dass Oracles MySQL-Provider mehr Alpha-Status hat als alles andere und dass Pomelo kürzlich zu einem "mehr legalen" Angebot wurde, also nicht mehr auf alten EF6-Provider-Quellen basiert: https://github.com/PomeloFoundation /Pomelo.EntityFrameworkCore.MySql/issues/40#issuecomment-241950787 – Tseng
Danke @Tseng! Das Problem ist, dass, wenn ich nach dem Konstruktor fortfahre, das erste Mal, wenn ich versuche, auf irgendwelche Daten zuzugreifen, andere Ausnahmen erhalte. Diese sind etwas konkreter, insbesondere, dass eine Tabelle in der Datenbank nicht existiert. So etwas ist eindeutig falsch, und es ist wahrscheinlich in meiner MembersContext-Definition. Ich werde meine Frage aktualisieren, um diesen Code anzuzeigen. – RiverRunner