gpt4 book ai didi

c# - 将 MariaDB 与 Entity Framework 结合使用

转载 作者:IT老高 更新时间:2023-10-28 23:47:54 24 4
gpt4 key购买 nike

最近,我看到一则新闻,自MySQL has unfriendly pricing for clustered/enterprise version 以来,MariaDB 将成为MySQL 的替代品。根据谷歌。

现在我在 Google 上找不到任何关于 EF for MariaDB 的相关信息,所以我希望有人知道它。可以用MySQL driver for this since it is 100% compatible吗?有什么想法吗?

更新

我刚刚发现 RedHat is also switching from MySQL to MariaDB因为它是默认的数据库管理系统。所以我现在的项目有必要切换到MariaDB。

最佳答案

我能够将 MariaDB 10 与 Entity Framework 一起使用,尽管它需要做一些工作,主要是因为 MySQL 工具有点问题。

要在 Visual Studio 2010/2012 中使用 MySQL/MariaDB,您需要安装 MySQL for Visual Studio使用 MySQL Installer .我使用了 Web 版本,因为我只想下载连接器和扩展。完成此操作后,您可以添加与 MariaDB 的连接并创建 EF 模型。

但这还不足以运行您的代码。首先,您需要使用 NuGet 添加 MySQL 连接器。

不幸的是,MySQL for Visual Studio 添加了对旧提供程序版本的引用(提到 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 Studio 2013 不支持 MySQL for Visual Studio

更新 - 2017 年

Connector/.NET 基本上停滞不前,与 2013 年的问题相同,例如没有真正的异步调用。 “异步”调用是假的——它们在不同的线程上运行,违背了使用 async 的目的。仅此一项就不适用于 Web 应用程序,在这种应用程序中,人们希望使用 最小 线程/CPU 数量来处理尽可能多的请求。

不要介意 .NET Core 支持。

这就是为什么在过去几年中人们构建了自己的真正异步提供程序。一些比较流行的是:

  • MySqlConnector为 .NET .NET Core
  • 提供真正的异步提供程序
  • Pomelo在 MySQLConnector 之上提供 EF Core 支持

每个 NuGet 下载量约为 100K,版本频繁且维护活跃。

它们不是“官方的”,但绝对值得一试

锁定更新 - 2020 年 4 月

MySqlConnector 和 Pomelo 似乎真的起飞了。

Connector/.NET 终于发布了a couple of versions近两年后,最新的 8.0.19 获得了 233K 次下载。

MySqlConnector另一方面,0.61.0 版的下载量为 496K。小更新很频繁,最新的 0.63.2 会在这篇文章发布前 8 小时发布。这可能有点太频繁了,但比 2 年要好得多。

我还没有检查功能或 MySql 8 兼容性。如果我不得不选择(我可能会在下周为一个项目做这个),我会从 MySqlConnector 开始。

我怀疑 Connector/.NET 将被迫提供更频繁的更新,以跟上 .NET Core 版本的步伐,但这只是目前的猜测。

关于c# - 将 MariaDB 与 Entity Framework 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20183781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com