- 1. Téléchargement du provider Npgsql ici, actuellement version 2.0.11.91
- 2. Installation des DLL Npgsql dans le GAC
Démarrer > Tous les programmes > Microsoft Visual Studio 2010 > Visual Studio Tools > lancer Visual Studio Command Prompt (2010)gacutil -i "c:\Npgsql\Npgsql.dll" gacutil -i "c:\Npgsql\Mono.Security.dll"
Npgsql a été extrait dans c:\Npgsql
gacutil va copier les DLL dans le dossier assemby de windows
C:\WINNT\assembly (Windows XP)
C:\Windows\assembly (Windows 7)
- 3. Déclaration du provider Npgsql dans machine.config
<!-- Déclaration de Npgsql --> <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.11.91, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
dans la section ci dessous.
<configuration> <system.data> <DbProviderFactories> <!-- On rajoute la déclaration ici --> </DbProviderFactories> </system.data> </configuration>
les fichiers se trouve à l’emplacement suivant (remplacer Windows par WINNT sous Windows XP):
– C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config
– C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.configSi c’est une version 64 bits il y a aussi cela à modifier
– C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.config
– C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
- 4. Utilisation de edmgen
#Generation des différents fichiers via Edmgen C:\Windows\Microsoft.NET\Framework\v3.5\edmgen /mode:FullGeneration /provider:Npgsql /connectionstring:"Server=127.0.0.1;Port=5432;UserId=postgres;Password=******;Database=blog;" /project:PostgresqlBlog /outcsdl:c:\Npgsql\PostgresqlBlog.csdl /outmsl:c:\Npgsql\PostgresqlBlog.msl /outssdl:c:\Npgsql\PostgresqlBlog.ssdl /outobjectlayer:c:\Npgsql\PostgresqlBlog.ObjectLayer.cs /outviews:c:\Npgsql\PostgresqlBlog.Views.cs /language:CSharp
- 5. Téléchargement de edmgen2 à l’adresse suivante : ici
- 6. Création de l’EDMX grâce à edmgen2
On ouvre la solution Edmgen2 sous Visual Studio. On build (F6). On copie le dossier debug dans C:\Npgsql
A partir de ce moment là, on exécute la commande suivante:#Créé le fichier .edmx à l'endroit où l'on a lancé la commande C:\Npgsql\Debug\edmgen2 /ToEdmx c:\Npgsql\PostgresqlBlog.csdl c:\Npgsql\PostgresqlBlog.msl c:\Npgsql\PostgresqlBlog.ssdl
- 7. Création du fichier App.config
<!--?xml version="1.0" encoding="utf-8"?--> <configuration> <connectionStrings> <add name="PostgresqlBlogContext" connectionString="metadata=res://*/PostgresqlBlog.csdl|res://*/PostgresqlBlog.ssdl|res://*/PostgresqlBlog.msl;provider=Npgsql;provider connection string="Port=5432;Encoding=UTF8;Server=127.0.0.1;Database=blog;UserId=postgres;Password=*******"" providerName="System.Data.EntityClient" /> </connectionStrings> </configuration>
- 8. On ajoute le fichier edmx au projet que l’on souhaite
lorsque j’exécute l’instruction de l’étape 4, il m’affiche le message d’erreur suivant:
« Erreur 7001: Une valeur nulle a été retournée après l’appel de la méthode <> sur une instance de fournisseur de magasins de type <>. Le fournisseur de magasins risque de ne pas fonctionner correctement. »
que faut-il faire?
je crois comprendre par l’instruction de l’étape 4. qu’il doit charger dans « C:\Windows\Microsoft.NET\Framework\v3.5\edmgen » les fichiers « c:\Npgsql\PostgresqlBlog.csdl », … or ces derniers n’existent pas.
comment faut-il procéder?
Bonjour,
Tout d’abord merci pour votre blog, qui m’aide beaucoup. Une question, néanmoins, grâce à votre tuto j’ai réussi à utiliser EDMX pour Postgres mais quand je met à jour ma base Postgres je ne vois pas la répercussion dans visual studio. VS reste dans la « même » version de ma base lors de ma première utilisation …
Une idée peut être ?
Merci d’avance.
Franck Boutboul