.Net Core MySql
Posted
技术标签:
【中文标题】.Net Core MySql【英文标题】: 【发布时间】:2016-06-22 05:47:39 【问题描述】:我刚刚开始在 Ubuntu 14.04.4 上使用 .NET Core 在 Visual Studio Code 中进行编码 我习惯在工作中同时使用 Ubuntu(出于个人兴趣、爱好等)和 .NET 和 Visual Studio。
但是我遇到了一个我似乎无法克服的问题。我正在构建一个小型控制台应用程序,我想与 mysql 服务器通信,但我似乎无法让 MySql.ConnectorNET.Data 正常工作。
它是使用命令dnu install MySql.ConnectorNET.Data
安装的,这似乎工作正常。在 project.json 文件中添加了依赖项,intellisense 能够很好地遍历包,但 OmniSharp 日志报告:
[INFORMATION:OmniSharp.Dnx.DnxProjectSystem] Project /home/<username>/VSCode/SimpleSQLatmpt/project.json has these unresolved references: MySql.ConnectorNET.Data
我似乎无法解决这个问题。 VSCode 似乎检测到它,并要求我运行dnu restore
命令。但这无济于事。出于所有意图和目的,似乎 MySql.ConnectorNET.Data 在项目中可用,但无法使用。
谁能告诉我如何解决这个问题? 同样重要的是,为什么会发生这种情况?
非常感谢您的宝贵时间。
【问题讨论】:
扩展项目引用时是否有任何警告符号? VSCode 在左侧面板中没有经典的依赖树。我可以打开 project.json 文件来查看所有依赖项,在那里它看起来很好,就像它引用了来自 nuget 的正确包 .NET Core 很特殊,需要特殊的构建。任何组件都还没有为这个新平台做好准备,所以即使你很勇敢,也不要玩它。 【参考方案1】:在提出这个问题时(2016 年 3 月),没有适用于 MySQL 的与 .NET Core 兼容的 ADO.NET 提供程序。
现在情况变了:
MySqlConnector 由 Bradley Grainger 编写——获得 MIT 许可,并提供完整的异步支持 MySql.Data (>6.10) 由 Oracle 提供(传统上,GPL)我个人更喜欢MySqlConnector——它可以免费用于商业项目(MIT许可);我还在 Linux 下使用我的 NReco.Data 库对其进行了测试,它在我的场景中完美运行。不幸的是,MySqlConnector 还不支持 EF Core。
--- 更新 --
另一个 .NET Core 兼容的 MySQL 连接器 + EF Core MySQL 提供程序:
Pomelo.Data.MySql(不幸的是它没有实现真正的异步行为) Pomelo.EntityFrameworkCore.MySql【讨论】:
MySql.Data.Core
不再存在。请看nuget.org/packages/MySql.Data.Core
@MuhammadUmmar 你是对的 MySql.Data.Core 已被弃用,现在可用于 MySql.Data 包的 net-core 兼容构建(我已经更新了链接)。【参考方案2】:
更新 2 适用于 .NET Core 1.0 的 MySql 连接器 NET 刚刚发布(2016 年 9 月)http://insidemysql.com/mysql-connector-net-for-net-core-1-0/ 我没有尝试过 Bradley Grainger 的连接器,但是 MySQL 的这个连接器不支持 SSL。 :( 因此,任何想要使用的人都应该连接“;SslMode=None;”在连接字符串中。
【讨论】:
嗯,我喜欢使用官方连接器,但没有 SSL 有点破坏交易。 我们刚刚在 MySqlConnector 的 v0.3.0 中添加了 SSL 支持:github.com/mysql-net/MySqlConnectornuget.org/packages/MySqlConnector 来自 Oracle 的 MySql.Data 目前也不支持 SSL :(以上是关于.Net Core MySql的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core (.NET Core) and ASP.NET Core (.NET Framework)区别