【问题标题】:Type provider for MySqlMySql 的类型提供程序
【发布时间】:2013-12-19 15:50:23
【问题描述】:

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

谁能给我一个线索?我需要什么——如果有的话——额外的包裹?我使用SqlDataConnection 还是SqlEntityConnection

请原谅我的无知,但我完全迷路了。任何和所有的帮助表示赞赏。我喜欢类型提供者的想法,并且在函数式编程方面拥有丰富的经验,但正是围绕此的设置吸引了我。

【问题讨论】:

  • 你见过this吗??
  • 是的,我有(这是谷歌上出现的第一件事),但它谈论的是 SQL Server 而不是 MySql,而且它似乎不起作用。我需要一些额外的参考包来使它工作吗?

标签: mysql f# type-providers f#-3.0 f#-data


【解决方案1】:

我认为目前没有开箱即用的类型提供程序可以与 MySQL 一起使用。然而,Ross McKinlay 一直致力于为 SQL 数据库(更一般地)提供更好的类型提供程序。它目前适用于 MS SQL 服务器和 SQL Lite。

应该可以用相当少的工作编写一个支持 MySQL 的扩展(但遗憾的是,它还没有完成)。见his blog for details。我敢肯定,欢迎投稿!

【讨论】:

  • 哦,SQLite 支持会很好,尤其是用于测试目的。从 C# 方面来看,到目前为止,即使是 Entity Framework 6 对 SQLite 的支持也令人失望,只有 NHibernate 似乎在这方面做得很好......
  • 感谢 Thomas 抽出宝贵时间回复!不过这很可悲。我的意思是类型提供程序在 2 年前就已经出现了,这是一件很棒的事情。我不敢相信到目前为止支持的数据库很少。我想我只需要等待,或者学习更多 F# 并提供帮助。
  • 我同意缺少对其他数据库的支持是不幸的!问题是标准提供程序只是 LINQ to Entities/SQL 的包装器,因此它不可扩展。新的应该会让这更容易。
【解决方案2】:

我没有对此进行测试,但如果 Entity Framework works with MySql(确实如此)并且如果 F# 具有 Entity Framework Type Provider(确实如此),那么我希望实体框架类型提供程序可以与 MySql 一起使用。

你试过这种方法吗?

【讨论】:

  • 我会尝试这样做,但如果你能给予我一些关于如何做到这一点的指示,那就太棒了。我完全是.Net 的菜鸟。我的意思是完成。我知道相当多的 Haskell,所以我认为(阅读:希望)F# 不会有太多的学习曲线......提前致谢!
【解决方案3】:

如果您仍然感兴趣,我最近在我的SQL type provider 中添加了对 MySQL 的支持,帮助测试会很好!

【讨论】:

  • 这个项目还活着吗?这似乎只是一个测试阶段。
  • 它非常有活力,但很难做出贡献,所以它移动得相当缓慢,只有我自己在控制。大多数情况下,我需要在各种平台/数据库供应商组合等上进行测试的帮助。没有这个,我将永远不会真正有信心将其从测试阶段转移。虽然我相信很多人都在使用它。
【解决方案4】:

通用 SQL 数据库类型提供程序,支持 LINQ 查询、架构 探索、个人等等。

提供程序目前支持 MS SQL Server、SQLite、PostgreSQL、 甲骨文、MySQL 和 MS Access。除 SQL Server 之外的所有数据库供应商 和 MS Access 将需要第 3 方 ADO.NET 连接器对象 功能。这些是在运行时动态加载的,以便 SQL provider 项目不依赖于它们。您必须提供 带有“ResolutionPath”静态参数的程序集的位置。

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

【讨论】:

    【解决方案5】:

    我想我真的让它工作了!!这是我所做的:

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

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

    不过,必须有一种更简单的方法来做到这一点。我特别指出,向 GAC 添加内容不应成为所有流程的一部分。我的意思是,我是否要求太多才能“开箱即用”地工作?!

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

    【讨论】:

      猜你喜欢
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多