如何在Mono上使用Linq和MySql数据库?

有许多库提供Linqfunction,以便与MySql数据库交互的C#代码。 哪一个是Mono上最稳定可用的?

背景(主要是不相关的):我有一个简单的C#(.Net 2.0)程序更新MySql数据库中的值。 它通过cron作业每晚执行,并运行在Pentium 3 450Mhz,Linux + Mono上。 我想用Linq(.Net 3.5)重写它主要作为一个练习(我还没有使用Linq)。

Solutions Collecting From Web of "如何在Mono上使用Linq和MySql数据库?"

MySql唯一的(免费的)linq提供程序是DbLinq ,我相信从生产就绪还有很长的路要走。

也有MyDirect.Net这是商业,但我听到它的能力混合评论。

我已经读过,MySql将为5.3版本的.net连接器实现Linq to Entities API,但是我不知道是否还有一个时间表。 事实上,MySql几个月来一直对Entity Framework的支持完全默默无闻。


附录:根据发行说明,最新版本的MySql Connector / Net 6.0支持EF。 我不知道这是多么稳定/有用,所以我很乐意听到任何人的尝试。

根据Mono路线图,我不确定Linq是否可用于单声道?

至少有一些Linq可能在最新版本中可用,但Linq to DB已经在Mono 2.4上市(2009年2月)

不知道单声道,但我刚开始使用LightSpeed,并支持LINQ到MySQL。

在这个时候你不能使用linq来sql,你可以看看第三方的linq mysql提供者或linq实体。 linq to sql只适用于sql server数据库。

LINQ to SQL只是一个ORM层,利用表达式的强大功能,可以轻松地在代码中构建查询。

如果您只是为您的工具调用adhoc查询,则几乎不需要使用LINQ,它只是为您的代码添加一个额外的抽象层。

我曾经在http://www.primaryobjects.com/CMS/Article100.aspx上试过这个教程。 这使用dblinq / dbmetal为每个表生成数据上下文类和类。

这个代码在第一次尝试时失败了(MySql.Data.Types.MySqlConversionException:无法将MySQL日期/时间值转换为System.DateTime)。谷歌搜索显示,这应该很容易通过追加“Allow Zero Datetime = True ;“到连接字符串,不幸的是,这并不能解决我的问题,想到MySQL .Net连接器,是因为我执行了dblinq生成的SQL,而没有使用MySQL连接器的linq2sql中介层,这次没有发生任何异常。没有日期栏的人和DbLinq一起工作,所以从我的实验中我同意Adam的观点,DbLinq离开生产准备工作还有很长一段路要走。