提供Type Provider的MySql

3

我一直在寻找一个关于如何连接到 MySql 数据库并使用 F# 类型提供程序的例子,但我在网上找不到任何东西。

有人能给我一个提示吗?我需要什么额外的包吗?我是用 SqlDataConnection 还是SqlEntityConnection

请原谅我的无知,我完全迷失了。非常感谢任何帮助。我喜欢类型提供程序的想法,并且在函数式程序设计方面有相当多的经验,但正是这个设置让我困扰。


你看过这个吗? - huMpty duMpty
是的,我找到了(这是谷歌上出现的第一条结果),但它讨论的是SQL Server而不是MySql,而且似乎无法正常工作。我需要额外的参考包才能使其正常工作吗? - siki
5个回答

5

目前我不认为有适用于MySQL的开箱即用类型提供程序。但是,Ross McKinlay一直在为SQL数据库(更普遍地说)开发更好的类型提供程序。它目前可以与MS SQL服务器和SQL Lite一起使用。

可以编写扩展来支持MySQL,而且工作量相对较小(但遗憾的是,目前还没有实现)。有关详细信息,请参见他的博客。我相信贡献者是受欢迎的!


哦,SQLite支持会很不错,特别是用于测试目的。从C#方面来看,即使是Entity Framework 6对SQLite的支持也令人失望,只有NHibernate在这方面表现得非常出色... - Patryk Ćwiek
感谢Thomas抽出时间回复!虽然这很令人难过。我的意思是,类型提供程序已经推出2年了,而且它是一件非常好的事情。我无法相信到目前为止支持的数据库数量是如此之少。我想我只能等待,或者学习更多的F#并进行帮助。 - siki
1
我认为不支持其他数据库是很不幸的!问题在于标准提供程序只是LINQ to Entities / SQL的包装器,因此它不可扩展。新的提供程序应该会使这变得更加容易。 - Tomas Petricek

4

我打算尝试一下,但如果您能够指点我如何做到这一点,那就太好了。我对 .Net 完全不了解,我是个彻头彻尾的新手。我的意思是完全不懂。我知道一些 Haskell,所以我认为(读作:希望)学习 F# 不会太难... 预先感谢您! - siki

4
如果您仍然感兴趣,我最近为我的 SQL类型提供程序 添加了对MySQL的支持,帮助测试将会很好!

这个项目还在继续吗?它似乎只处于测试阶段。 - mb14
它非常活跃,但是由于只有我在控制,所以很难做出贡献,因此进展相对缓慢。主要需要帮助测试各种平台/数据库供应商组合等。如果没有这些,我将永远不会真正有信心将其从beta阶段推出。虽然我相信很多人正在使用它。 - Ross McKinlay

1
一个通用的SQL数据库类型提供程序,支持LINQ查询、模式探索、单个和其他许多功能。该提供程序目前支持MS SQL Server、SQLite、PostgreSQL、Oracle、MySQL和MS Access。除了SQL Server和MS Access之外的所有数据库供应商都需要第三方ADO.NET连接器对象才能正常工作。这些对象在运行时动态加载,因此SQL提供程序项目不依赖于它们。您必须提供程序集的位置,以使用“ResolutionPath”静态参数。

https://fsprojects.github.io/SQLProvider/


0

我想我终于让它工作了!这是我做的:

  • 安装了MySql Connector
  • 在我的项目中添加并引用了MySql.Data和MySql.Data.Entity
  • 在我的项目中添加了EntityFramework 5.0
  • 将MySql.Data和MySql.Data.Entity都添加到GAC中。

然后我就能使用SqlEntityConnection并获取类型了!

不过,肯定有更简单的方法来完成这个过程。特别是,将东西添加到GAC中不应该成为整个过程的一部分。我的意思是,我难道要求这个工作几乎“开箱即用”吗?!

不幸的是,我对.Net还非常不熟悉,所以我无法通过App.config文件让整个东西都工作起来。根据我在这里的搜索结果,看起来我不是唯一遇到问题的人。如果有人有任何反馈/建议,请帮忙!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接