最近,我读到了一则新闻,根据谷歌的说法,MariaDB是MySQL的替代产品,因为MySQL has unfriendly pricing for clustered/enterprise version。
现在我在谷歌上找不到任何关于EF for MariaDB的相关信息,所以我希望有人知道这件事。可以使用MySQL driver for this since it is 100% compatible吗?有什么想法吗?
更新
我刚刚找到了它的默认数据库管理系统的RedHat is also switching from MySQL to MariaDB。因此,对于我当前的项目来说,有必要将其切换到MariaDB。
发布于 2013-12-20 19:37:36
我能够在Entity Framework中使用MariaDB 10,尽管这需要一些工作,主要是因为MySQL工具有一点bit。
要在Visual Studio 2010/2012中使用MySQL/MariaDB,您需要使用MySQL Installer安装MySQL for Visual Studio。我使用Web版本,因为我只想下载连接器和扩展。完成此操作后,您可以向MariaDB添加连接并创建EF模型。
但这还不足以运行您的代码。首先,您需要使用NuGet添加MySQL连接器。
不幸的是,Visual Studio的MySQL添加了对较旧提供程序版本(提到的here)的引用,并且无法加载较新的版本。为了解决这个问题,我在我的app.config中添加了以下部分:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"/>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>这将用新的引用替换旧的引用。请注意,我使用了
<remove invariant="MySql.Data.MySqlClient"/>不
<remove name="MySql Data Provider"/>在remove元素中。
目前,Visual Studio2013不支持MySQL for Visual Studio
更新-2017年
连接器/.NET本质上是停滞不前的,有着2013年同样的问题,例如没有真正的异步调用。“异步”调用是假的--它们在不同的线程上运行,违背了使用async的真正目的。这本身就使得它不适合web应用程序,在web应用程序中,人们希望使用最小数量的线程/CPU来服务尽可能多的请求。
别管.NET核心支持了。
这就是为什么在过去的几年里,人们已经构建了他们自己的,真正的异步提供程序。其中一些比较受欢迎的是:
之上为.NET和.NET提供了真正的异步提供程序,并提供EF核心支持
每个NuGet的下载量约为100K,版本频繁,维护积极。
它们不是“官方”的,但绝对值得一试
锁定更新-2020年4月
看起来MySqlConnector和Pomelo真的起飞了。
连接器/.NET终于在近两年后发布了a couple of versions,最新版本为8.0.19,获得了233K的下载量。
另一方面,MySqlConnector获得了0.61.0版本的496K下载量。小的更新是频繁的,最新的0.63.2出现在这篇文章的前8个小时。这可能有点太频繁了,但比两年要好得多。
我还没有检查功能或MySql 8兼容性。如果我必须选择(我可能会在下周的一个项目中这样做),我会从MySqlConnector开始。
我怀疑连接器/ .NET将被迫提供更频繁的更新,以跟上.NET核心版本的步伐,但这在这一点上只是猜测。
https://stackoverflow.com/questions/20183781
复制相似问题