有许多库为C#代码提供了与MySql数据库交互的Linq功能。其中哪一个在Mono上最稳定可用?
后台(主要是不相关的):我有一个简单的C#(。Net 2.0)程序更新MySql数据库中的值。它通过cron作业每晚执行,并在Pentium 3 450Mhz,Linux + Mono上运行。我想用Linq(.Net 3.5)重写它,主要是作为练习(我还没有使用过Linq)。
答案 0 :(得分:6)
MySql的唯一(免费)linq提供程序是DbLinq,我相信距离生产就绪还有很长的路要走。
还有MyDirect.Net这是商业性的,但我听到了对它的能力的不同评论。
我已经读过,MySql将为5.3版本的.net连接器实现Linq to Entities API,但我不知道是否还有时间表。实际上,MySql几个月来一直对Entity Framework支持完全保持沉默。
附录:根据发行说明,最新版本的MySql Connector / Net 6.0支持EF。我不知道这是多么稳定/有用,所以我很乐意听到任何试过它的人。
答案 1 :(得分:2)
根据Mono roadmap我不确定Linq是否可用于单声道?
至少部分Linq可能会在最新版本中提供,但Linq to DB列于Mono 2.4(2009年2月)
答案 2 :(得分:2)
不确定Mono,但我刚开始使用LightSpeed并支持LINQ-to-MySQL。
答案 3 :(得分:0)
此时你不能使用linq来sql,你可能会查看第三方linq mysql提供者或linq实体。 linq to sql仅适用于sql server数据库。
答案 4 :(得分:0)
LINQ to SQL只是一个利用表达式功能的ORM层,可以很容易地在代码中构造查询。
如果您只是为您的工具调用adhoc查询,则几乎不需要使用LINQ,它只是为您的代码添加了一层额外的抽象。
答案 5 :(得分:0)
我在http://www.primaryobjects.com/CMS/Article100.aspx尝试了教程。这使用dblinq / dbmetal为每个表生成数据上下文类和类。
代码在第一次尝试失败时出现未处理的异常(MySql.Data.Types.MySqlConversionException:无法将MySQL日期/时间值转换为System.DateTime“)。谷歌搜索显示这应该可以通过附加”允许零“轻松解决Datetime = True;“到连接字符串。 不幸的是,事实证明这不是解决我的问题。认为MySQL .Net连接器是责备我执行dblinq生成的SQL而没有使用MySQL Connector的linq2sql中间层。这次没有发生异常。 没有日期列的表确实适用于DbLinq。 因此,从我的实验中我同意Adam,DbLinq距离生产准备还有很长的路要走。