繁体   English   中英

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

[英]How can I use Linq with a MySql database on Mono?

有许多库为C#代码提供了与MySql数据库交互的Linq功能。 其中哪一个在Mono上最稳定可用?

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

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

还有MyDirect.Net是商业性的,但我听说它的能力有各种各样的评论。

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


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

不确定Mono,但我刚开始使用LightSpeed并支持LINQ-to-MySQL。

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

至少部分Linq可能在最新版本中可用,但Linq to DB列于Mono 2.4(2009年2月)

我在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距离生产准备还有很长的路要走。

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

LINQ to SQL只是一个利用表达式功能的ORM层,可以很容易地在代码中构造查询。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM