Estoy escribiendo y la aplicación ASP.NET MVC con SQL Server 2008. Desafortunadamente, la única forma en que puedo conectarme a esa base de datos es mediante un dsn u ODBC en mi entorno de producción. En desarrollo, he usado una capa Linq2SQL para acceder a los datos en la base de datos. ¿Existe alguna manera de forzar a Linq2SQL a utilizar ODBC para la conectividad en lugar de una conexión de SQL Client?¿Puedo usar LINQ2SQL con ODBC?
Respuesta
El código generado por LINQ to SQL tiene referencias codificadas a las conexiones del servidor SQL en todas partes, por lo que no. Sin embargo, es posible que pueda usar DBLinq.
Sí, hay una forma de usar ODBC con LINQ a SQL, pero se necesita un código adicional y no será tan rico en funciones. Sé que puede obtener ORM para las declaraciones SELECT
, pero no estoy seguro si funcionará para las declaraciones UPDATE
o DELETE
.
En el siguiente fragmento de código, primero definí mi modelo en un archivo .dbml Linq2Sql vacío (creé manualmente un objeto PurchaseOrder
con los campos que necesito). Pero observe cómo puedo crear un nuevo contexto de datos pasando una conexión ODBC a él. Finalmente, hay un último truco: tengo que usar el método ExecuteQuery
del contexto de datos junto con una declaración SELECT
para obtener mis órdenes de compra.
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, mientras que se puede utilizar la solución sugerida por Peder, se frustraría el propósito de LINQ, ya que ustedes serán Consulta del servidor directamente en lugar de mapeo. Tom tiene razón sobre el "código rígido", pero hay una forma de evitarlo, puede crear su propia interfaz, una gran explicación sobre los conceptos y cómo hacerlo está aquí: http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx
- 1. No puedo acceder a ODBC DB con MS Access2007
- 2. Carga ansiosa de Linq2SQl con múltiples DataLoadOptions
- 3. ODBC ConnectionString
- 4. ASP.NET ODBC de consulta con parámetros
- 5. Conexión MySQL usando ODBC (5.1) con SSL
- 6. Validar Linq2Sql antes de SubmitChanges()
- 7. Unidad probando un repositorio LINQ2SQL
- 8. Confusión entre objetos DTO (linq2sql) y clase.
- 9. 64 bits ODBC Excepción
- 10. ¿Cómo puedo interceptar/reescribir llamadas de Windows ODBC?
- 11. ¿Puedo hacer llamadas ODBC asíncronas? Cualquier material de referencia?
- 12. NHibernate, Entity Framework, registros activos o linq2sql
- 13. ¿Puedo usar php con phonegap?
- 14. ¿Puedo usar nHibernate con monotouch?
- 15. ¿Puedo usar LESS con Xul?
- 16. ¿Puedo usar Socket.IO con Django?
- 17. ¿Puedo usar python con giraph?
- 18. Linq2SQL para producir el operador Like
- 19. LINQ2SQL como el comando de la frase
- 20. Cómo escribir esta consulta en Linq2Sql
- 21. ¿Por qué Entity Framework no es compatible con ODBC?
- 22. Linq2SQL vs EF en .net Framework 4.0
- 23. Conexión DSN-less con PHP ODBC usando el controlador MDBTools
- 24. MySQL odbc timeout from R
- 25. Error al eliminar un registro utilizando Linq2SQL
- 26. ¿Cómo puedo implementar la estrategia de almacenamiento en caché en mi Asp.net Mvc con el repositorio linq2sql?
- 27. Linq2SQL tratar con inserciones/eliminaciones en la mesa con restricciones únicas
- 28. Insertar caracteres Unicode con PHP -> ODBC -> MS SQL?
- 29. ¿Cuál es el problema con ODBC como tecnología?
- 30. crear un nuevo DSN de usuario ODBC con Delphi