Sto scrivendo e l'applicazione ASP.NET MVC con SQL Server 2008. Sfortunatamente, l'unico modo per connettermi a quel database è attraverso un dsn o ODBC nel mio ambiente di produzione. In fase di sviluppo ho utilizzato un livello Linq2SQL per accedere ai dati nel database. Esiste un modo per forzare Linq2SQL a utilizzare ODBC per la connettività anziché una connessione client SQL?Posso usare LINQ2SQL con ODBC?
risposta
Il codice generato da LINQ su SQL presenta riferimenti hardcoded alle connessioni del server SQL ovunque, quindi no. Tuttavia, potresti essere in grado di utilizzare DBLinq.
Sì, c'è un modo per utilizzare ODBC con LINQ su SQL, ma è necessario un codice aggiuntivo e non sarà quasi altrettanto ricco di funzionalità. So che è possibile ottenere ORM per le dichiarazioni SELECT
, ma non sono sicuro che funzioni per le istruzioni UPDATE
o DELETE
.
Nel seguente snippet di codice, ho prima definito il mio modello in un file .dbml Linq2Sql vuoto (ho creato manualmente un oggetto PurchaseOrder
con i campi di cui ho bisogno). Ma poi nota come sono in grado di creare un nuovo contesto dati passando una connessione ODBC ad esso. Infine, c'è un ultimo trucco: devo usare il metodo ExecuteQuery
del contesto di dati insieme a una dichiarazione SELECT
per ottenere i miei ordini di acquisto.
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");
}
Darin, mentre è possibile utilizzare la soluzione suggerita da Peder, sarebbe vanificato l'obiettivo di LINQ, come si sarebbe interrogazione del server direttamente invece di mappatura. Tom ha ragione riguardo al "codice hard" ma c'è un modo per aggirare, puoi creare la tua interfaccia, una grande spiegazione sui concetti e come farlo è qui: http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx
- 1. Posso usare più "con"?
- 2. Linq2SQL per produrre operatore Like
- 3. Posso usare MENO con Xul?
- 4. Posso usare Socket.IO con Django?
- 5. Posso usare python con giraph?
- 6. Posso usare Grunt con TFS?
- 7. Posso usare BeginInvoke con MulticastDelegate?
- 8. Posso usare Clojure con nginx?
- 9. Posso usare NSUserDefaults con tvOS?
- 10. ODBC ConnectionString
- 11. Convalidare Linq2Sql prima di SubmitChanges()
- 12. NHibernate, Entity Framework, record attivi o linq2sql
- 13. C'è un trucco per usare TSQLMonitor con un TSQLConnection che usa il nuovo driver ODBC dbExpress?
- 14. Unità testata su un repository LINQ2SQL
- 15. Come scrivere questa query in Linq2Sql
- 16. Come posso intercettare/riscrivere le chiamate ODBC di Windows?
- 17. Classe di query Linq2Sql orientata agli oggetti
- 18. Come posso usare Moose con Test :: Class?
- 19. Posso usare Elenco Scala con Slick (Riproduci)?
- 20. Come posso usare webpack con express?
- 21. Posso usare AlarmManager con LocalBroadcastManager su Android?
- 22. Come posso usare bigint con C#?
- 23. Come posso usare ddply con variabili variabili?
- 24. Posso usare ng-model con scope isolato?
- 25. Posso usare variabili con assert/1?
- 26. Posso usare NetBeans con asp.net come editor?
- 27. Come posso usare Jenkins con Atlassian Stash?
- 28. Come posso usare Bootstrap con Django?
- 29. Posso usare tagit con twitter bootstrap?
- 30. Posso usare qwery con bean senza Ender?