最近、MariaDBはMySQLのドロップオフ代替品であるというニュースを読みました。これは、Googleによると MySQLにはクラスター版/エンタープライズ版の価格が使いにくい があるためです。
GoogleでMariaDBのEFに関連するものが見つからないので、誰かがそれを知っていることを望んでいます。 100%互換性があるため、このためのMySQLドライバー を使用しても大丈夫ですか?何かご意見は?
更新
RedHatもMySQLからMariaDBに切り替えています がデフォルトのデータベース管理システムであることがわかりました。したがって、現在のプロジェクトではMariaDBに切り替える必要があります。
MariaDB 10をEntity Frameworkで使用できましたが、主にMySQLツールが少しバグがあるため、少し作業が必要でした。
Visual Studio2010/2012でMySQL/MariaDBを使用するには、 MySQL for Visual Studio を使用してインストールする必要があります MySQLインストーラー 。コネクタと拡張機能のみをダウンロードしたいので、Webバージョンを使用しました。これを行うと、MariaDBに接続を追加してEFモデルを作成できます。
ただし、これではコードを実行するには不十分です。最初に、NuGetを使用してMySQL Connectorを追加する必要があります。
残念ながら、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
要素内。
現在、MySQL for Visual StudioはVisual Studio 2013ではサポートされていません
更新-2017
Connector/.NETは基本的に停滞しており、2013年と同じ問題、たとえば真の非同期呼び出しがありません。 「非同期」コールは偽物です-それらは別々のスレッドで実行され、async
を使用するまさにその目的を無効にします。それだけでは、minimumスレッド/ CPUの数を使用してできるだけ多くのリクエストを処理するWebアプリケーションには適していません。
.NET Coreサポートについては気にしないでください。
そのため、ここ数年、人々は独自の真の非同期プロバイダーを構築してきました。より人気のあるもののいくつかは次のとおりです。
それぞれ約10万件のNuGetがダウンロードされ、頻繁にバージョンが更新され、アクティブなメンテナンスが行われます。
彼らは「公式」ではありませんが、試してみる価値は間違いありません