7
votes

Puis-je utiliser LINQ2SQL avec ODBC?

J'écris et l'application ASP.NET MVC avec SQL Server 2008. Malheureusement, la seule façon de vous connecter à cette base de données est via un DSN ou ODBC dans mon environnement de production. En développement, j'ai utilisé une couche LINQ2SQL pour accéder aux données de la base de données. Existe-t-il une manière que je puisse forcer LINQ2SQL à utiliser ODBC pour la connectivité plutôt qu'une connexion client SQL?


0 commentaires

3 Réponses :


3
votes

Le code généré par LINQ vers SQL a des références codées en papier aux connexions SQL Server sur tout le lieu, donc non. Cependant, vous pourrez peut-être utiliser dblinq .


0 commentaires

1
votes

Oui, il existe un moyen d'utiliser ODBC avec LINQ vers SQL, mais un code supplémentaire est requis et il ne sera pas presque aussi riche en fonctionnalités forte>. Je sais que vous pouvez obtenir orm pour Sélectionner des instructions code>, mais je ne suis pas sûr si cela fonctionnera pour Mettre à jour code> ou Supprimer code>.

Dans l'extrait de code suivant, j'ai défini d'abord mon modèle dans un fichier vide linq2sql .dbml (j'ai créé manuellement un objet code> code> avec les champs dont j'ai besoin). Mais notez ensuite comment je suis capable de créer un nouveau contexte de données en passant à une connexion ODBC. Enfin, il y a une dernière astuce: je dois utiliser la méthode exécuteur code> code> avec une instruction code> SELECT CODE> pour obtenir mes commandes d'achat. P>

using (var connection = new OdbcConnection("Driver={iSeries Access ODBC Driver};System=serverName;UID=yourUid;PWD=yourPwd"))
{
    var purchaseOrderContext = new Models.PurchaseOrdersDataContext(connection);

    var purchaseOrders = purchaseOrderContext.ExecuteQuery<Models.PurchaseOrder>("SELECT * FROM mySchema.myTable");
}


0 commentaires

5
votes

Darin, alors que vous pouvez utiliser la solution suggérée par Peder, il vaincre le but de LINQ, car vous interrogeriez le serveur directement au lieu de la cartographie. Tom a raison sur le "codé dur", mais il y a un moyen de créer votre propre interface, une excellente explication sur les concepts et comment le faire est ici: http://blogs.msdn.com/b/mattwar/archive/2008/11/18/LINQ- Liens.aspx


0 commentaires