Linq to Sql de PostgreSQL
Est-il possible d'utiliser LinqToSql avec PostgreSQL (de préférence avec des Mono)? Pouvez-vous recommander des articles où il décrit étape par étape?
Vous devez vous connecter pour publier un commentaire.
Est-il possible d'utiliser LinqToSql avec PostgreSQL (de préférence avec des Mono)? Pouvez-vous recommander des articles où il décrit étape par étape?
Vous devez vous connecter pour publier un commentaire.
Pas hors de la boîte. Il faut trouver une troisième partie qui a écrit un fournisseur pour PostgreSQL.
Un tel fournisseur est DbLinq. Instructions d'installation et d'utilisation peuvent être trouvés ici.
Veuillez noter, qu'à compter de 2016 année DbLinq projet est mooved à github, archivé et n'est plus maintenu.
- Je utiliser LINQ to SQL depuis environ 2 ans avec MySQL et PostgreSQL bases de données (à l'aide de DbLinq sur Windows, à l'aide de Mono sous Linux et Mac OS X).
Donc LINQ to SQL n'est PAS limitée à SQL Server, mais comme indiqué ci-dessus, vous devez utiliser des bibliothèques externes.
Mono, DbLinq est le fondement du Système.Les données.Linq espace de noms: vous n'avez pas besoin de déployer de registre/DbLinq assemblées. Idem pour le Npgsql de l'assemblée: il est déjà prévu par les dernières versions de Mono.
Vous devez être conscient que le support est incomplète (j'ai eu de nombreux problèmes quand j'ai essayé de lier un contrôle ObjectDataSource à une de données PostgreSQL contexte: j'ai résolu en faisant manuel de la liaison de données avec le générés entités). Mais c'est suffisant pour la plupart des requêtes SQL (je l'ai presque jamais eu d'échec des requêtes : les articulations complexes peuvent être simulées par plusieurs requêtes plus simples).
Il y a peu de différence entre DbLinq et LINQ to SQL. Seule la chaîne de connexion doit être personnalisés en fournissant des informations sur le fournisseur de données. Voir ces courts exemples (je n'ai jamais trouvé un véritable tutoriel sur l'utilisation de DbLinq):
http://www.mono-project.com/Release_Notes_Mono_2.6
http://www.jprl.com/Blog/archive/development/mono/2009/Mar-12.html
Personnellement, avec Mono 2.10.6, j'utilise ce type de chaîne de connexion : "Server=localhost; Database=MyDB; User Id=postgres; Mot de passe=Monmotdepasse; DbLinqProvider=PostgreSql; DbLinqConnectionType=Npgsql.NpgsqlConnection, Npgsql, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
Remarque: sur Mono, le DbMetal outil est remplacé par le "sqlmetal de la commande", qui a les mêmes paramètres (c'est juste un wrapper autour de DbMetal).
Il y a un tiers fournisseur Linq pour postgres (ainsi que MySql et d'autres bases de données) ici.
Une autre option est ngpsql
Mise à JOUR La npgsql bibliothèque a déménagé à Github ici est un lien mis à jour
Utilisation LinqToDB pour PostgreSQL
https://www.nuget.org/packages/linq2db.PostgreSQL/
Dans Visual studio, ouvrez NuGet console et exécutez la commande suivante:
PM> Install-Package linq2db.PostgreSQL
Vous allez vous retrouver avec un dossier dans votre solution:
LinqToDB.PostgreSQL
. Dans le dossier il y a un fichier appeléCopyMe.PostgreSQL.tt.txt
. Lire dans le fichier quoi faire pour obtenir votre Contexte de la classe générée.Exemple de contenu du fichier:
Chaque fois que vous enregistrez le
*.tt
fichier, la classe sera régénéré.Fonctionne bien pour notre entreprise de 21 développeurs.
Linq-to-SQL
prend uniquement en charge de SQL Server. Entity Framework prend en charge d'autres bases de données.Non, LINQ to SQL ne fonctionne qu'avec MS SQL Server. Vous devez utiliser la 3 ème partie de fournisseur d'accès à PostgreSQL base de données. Je vous recommande d'essayer Devart LinqConnect. Aussi ce produit fournit quelques fonctionnalités de l'Entity Framework, par exemple - type complexe, la différence de succession type de support, etc.