2008-09-03 14 views
10

Existen numerosas bibliotecas que proporcionan capacidades de Linq al código C# que interactúa con una base de datos MySql. ¿Cuál de ellos es el más estable y utilizable en Mono?¿Cómo puedo usar Linq con una base de datos MySql en Mono?

Fondo (casi irrelevante): Tengo un programa sencillo C# (.Net 2.0) que actualiza los 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).

Respuesta

6

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 del conector MySQL/Net 6.0 tiene soporte para el EF de acuerdo con 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.

+1

Mientras buscaba g para las herramientas Mono DB me encontré con esta respuesta: ¿está DbLinq actualmente listo para producción? ¿Hay alguna alternativa? –

0

en este momento no puede usar linq a sql, puede buscar en un proveedor linq mysql de terceros o linq a las entidades. linq to sql solo funciona para bases de datos de servidor sql.

0

LINQ to SQL es simplemente una capa ORM que aprovecha el poder de las expresiones para facilitar la construcción de consultas en el 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.

2

Según el Mono roadmap no estoy seguro si Linq está disponible para mono?

Al menos algunos de LINQ puede estar disponible en la última versión, pero LINQ to DB está en la lista de Mono 2.4 (feb 2009)

2

No está seguro acerca de Mono, pero acabo de empezar a utilizar LightSpeed y que es compatible con LINQ -to-MySQL.

+0

LightSpeed ​​ahora es compatible con Mono (http://www.mindscape.co.nz/blog/index.php/2009/02/12/lightspeed-and-mono/). – itowlson

0

He intentado 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: Imposible convertir el valor de fecha/hora de MySQL a System.DateTime "). Google reveló que esto debería resolverse fácilmente agregando" Permitir " Zero Datetime = True; "a la cadena de conexión. Desafortunadamente, esto no solucionó mi problema. Pensando que MySQL .Net Connector era el culpable, ejecuté el SQL generado por dblinq sin la capa intermediaria linq2sql usando el conector MySQL. no se produjo ninguna excepción. Las tablas que no tienen una columna de fecha funcionaron con DbLinq. Por lo tanto, desde mi experimento estoy de acuerdo con Adam, DbLinq está muy lejos de estar listo para la producción.

Cuestiones relacionadas