c# - usar - que es linq to sql
¿Cómo puedo usar Linq con una base de datos MySql en Mono? (6)
LINQ to SQL es simplemente una capa ORM que aprovecha el poder de las expresiones para facilitar la construcción de consultas en su código.
Si solo está llamando consultas adhoc para su herramienta, hay poca necesidad de usar LINQ, simplemente agrega una capa adicional de abstracción a su código.
Existen numerosas bibliotecas que proporcionan capacidades de Linq al código C # interactuando con una base de datos MySql. ¿Cuál de ellos es el más estable y utilizable en Mono?
Fondo (casi irrelevante): Tengo un programa simple C # (.Net 2.0) actualizando valores en una base de datos MySql. Se ejecuta todas las noches a través de un trabajo cron y se ejecuta en un Pentium 3 450Mhz, Linux + Mono. Quiero reescribirlo usando Linq (.Net 3.5) principalmente como ejercicio (todavía no he usado Linq).
en este momento no puede usar linq para sql, puede buscar en un proveedor linq mysql de terceros o linq para las entidades. linq to sql solo funciona para bases de datos de servidor sql.
De acuerdo con la hoja de ruta de Mono, no estoy seguro si Linq está disponible para mono?
Al menos parte de Linq podría estar disponible en la versión más reciente, pero Linq a DB está listado para Mono 2.4 (Feb 2009)
No estoy seguro sobre Mono, pero recién comencé a usar LightSpeed y eso soporta LINQ-to-MySQL.
El único proveedor (gratuito) de linq para MySql es DbLinq , y creo que está muy lejos de estar listo para la producción.
También hay MyDirect.Net, que es comercial, pero he escuchado críticas mixtas de su capacidad.
He leído que MySql implementará la API Linq to Entities para la versión 5.3 del conector .net, pero no sé si hay incluso una línea de tiempo para eso. De hecho, MySql guardó silencio sobre el soporte de Entity Framework durante meses.
Adición: la última versión de MySql Connector / Net 6.0 tiene soporte para EF según las notas de la versión. No tengo idea de lo estable / útil que es esto, así que me encantaría saber de alguien que lo haya probado.
He probado el tutorial en http://www.primaryobjects.com/CMS/Article100.aspx . Esto utiliza dblinq / dbmetal para generar clases y clases de contexto de datos para cada tabla.
El código falló en el primer intento con una excepción no controlada (MySql.Data.Types.MySqlConversionException: no se puede convertir el valor de fecha / hora de MySQL a System.DateTime "). Google reveló que esto debería resolverse fácilmente agregando" Allow Zero Datetime = True " ; "a la cadena de conexión. Desafortunadamente esto resultó no resolver mi problema. Pensando que el .Net Connector de MySQL era el culpable, ejecuté el SQL generado por dblinq sin la capa intermediaria linq2sql utilizando el conector MySQL. Esta vez no se produjo ninguna excepción. que no tienen una columna de fecha funcionó con DbLinq. Por lo tanto, desde mi experimento estoy de acuerdo con Adam, DbLinq está muy lejos de estar listo para la producción.