2017-03-17 2 views
2

J'essaie de raccorder une base de données Postgres à un concepteur EDMX.Npgsql Entityframework - Impossible de voir le fournisseur Postgres pour ADO.net Entity Data Model

J'ai installé le module pépite EntityFrameowrk6.npgsql comme décrit ici: http://www.npgsql.org/ef6/index.html (La base de données a déjà il UUID ossp extension)

J'ai alors installé le package d'extension, comme décrit ici: http://www.npgsql.org/doc/ddex.html

Enfin, j'ai mis à jour le module npgsql vers v3.2.1 pour correspondre à la version de l'extension comme suggéré dans la documentation d'intégration.

Je peux me connecter à ma base de données en utilisant le navigateur du serveur Visual Studio. Après avoir fait cela, je suis allé ajouter un modèle de données d'entité ado.net à mon projet, mais il n'y a que les fournisseurs Microsoft disponibles. Pas de Postgres en vue! Je suis en cours d'exécution Visual Studio Community 2017, qui est entièrement à jour, et la seule autre extension installée est AnkhSVN. C'est un projet C# actuellement configuré pour .net 4.5.1 (mais je suis plus qu'heureux et désireux de changer le framework cible pour faire fonctionner les choses!)

Les seuls paquets Nuget dans mon projet sont ceux décrits ci-dessus et leurs dépendances. Beaucoup googling a pour résultat seulement différents tutoriels me disant de faire fondamentalement ce qui précède, ou des gens ajoutant des éléments à app.config (avec lesquels j'ai essayé et échoué, et qui sont revenus) que la documentation de npgsql indique explicitement que vous ne devriez pas Je dois faire.

Toute aide très appréciée!

Éditer: Ceci est mon App.Config tel qu'il est actuellement.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" /> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.2.1.0" newVersion="3.2.1.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

Il existe deux niveaux de support: le support VS "basic" via l'explorateur de serveurs et le support EF via l'assistant EDM. Pour le premier (la fonctionnalité VSIX de base), vous n'avez pas besoin de modifier app.config (ou autre chose que l'installation de l'extension). Cependant, le support EF nécessite que le fournisseur Npgsql EF soit enregistré dans * app.config * de votre application (pas dans votre Visual Studio). Pouvez-vous essayer d'ajouter le fournisseur EF de Npgsql et afficher les résultats? Si cela ne fonctionne pas, publiez également app.config. –

+0

Ok, l'App.Config a déjà ce qui me semble être l'enregistrement npgsql, donc je l'ai posté au cas où quelque chose manquerait –

Répondre

0

Il s'avère que le problème était que je ne reconstruisais pas mon projet/solution après avoir ajouté le contenu de NuGet. Principalement en raison du fait que je remplaçais une ancienne implémentation SQL EF avec PostgreSQL et que je ne pouvais pas construire en raison de la myriade de références manquantes.

La question proposée ici que la reconstruction était quelque chose qui devrait se produire: Entity Framework 6.1.1 and Npgsql 2.2.3: Compatible Entity Framework database provider could not be found

Alors, je commentais la majeure partie de mon code, reconstruit, et le fournisseur a mis en place où je me attends à ce.

est écrasant Visual Studio (boo siffler), mais c'est un problème distinct. J'espère que cela aidera une pauvre âme.