Entity Framework 6 mit Npgsql
Will ich mit Entity Framework 6 mit PostgreSQL ASP.NET MVC 4 Projekt. Ich habe Entity Framework 6.0.2 + Npgsql 2.0.14.3, aber ich bekomme Fehler. Wie kann ich dieses Problem beheben?
Fehler:
Eine Ausnahme des Typs " System.InvalidOperationException' ist in mscorlib.dll wurde aber nicht behandelt werden, in Benutzer-code
Zusätzliche Informationen: Die 'Instanz' Mitglied des Entity-Framework-provider-Typ 'Npgsql.NpgsqlServices, Npgsql, Version=2.0.14.3, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7' nicht zurück ein Objekt,, erbt von " System.Daten.Entität.Core.Common.DbProviderServices'. Entity Framework-Anbieter müssen von dieser Klasse Erben aus, und die 'Instanz' Mitglied muss return die singleton-Instanz des Anbieters. Dies kann sein, weil der Anbieter nicht-Unterstützung Entity Framework 6 oder höher; siehe http://go.microsoft.com/fwlink/?LinkId=260882 für weitere Informationen.
Web.config
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description="Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="DatabaseContext" connectionString="Server=localhost;port=5432;Database=main;User Id=postgres;Password=password;" providerName="Npgsql" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql" />
</providers>
</entityFramework>
InformationsquelleAutor user007 | 2014-01-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Musste ich installieren Npgsql wie diese:
Install-Package Npgsql.EF6 -Pre
Es installiert, andere version, die funktioniert.
UPDATE:
Ich fand, dass für neuere beta-version, die Sie schreiben können
install-package Npgsql.EntityFramework -pre
Ich habe gerade einige Kommentare über die Notwendigkeit der Npgsql 2.1 version zu bekommen, EF-6-Unterstützung sowie Referenzen für die NpgsqlEntityFramework. Ich hoffe in diese Richtung wird helfen, neue Nutzer zu bekommen, es schneller zu gehen. Vielen Dank für das heads-up!
Ein weiteres detail ist, dass beginnend mit Npgsql 2.1.0, die Linie, welche Register hat der Anbieter zu sein: <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework" /> für EF6 von oben oder <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql.EntityFrameworkLegacy" /> für EF5 und unten. Das ist nötig, da zogen wir den EF-code nach Baugruppen getrennt.
Ich habe alle diese arbeiten, aber wenn man versucht die EF Power Tools (Reverse Engineering-Code Zuerst mit einer postgres-db) schlägt es mit Konnte nicht geladen, Datei oder assembly 'Npgsql.EntityFrameworkLegacy, Version=2.2.0.0, obwohl ich angegeben Npgsql.EntityFramwork für den Anbieter (das ist wohl für EF6)
InformationsquelleAutor user007