sql >> データベース >  >> RDS >> Mysql

EntityFrameworkでのMariaDBの使用

    主にMySQLツールが少しバグがあるため、少し作業が必要でしたが、EntityFrameworkでMariaDB10を使用できました。

    VisualStudioでMySQL/MariaDBを操作するには2010/2012 MySQL for VisualStudio をインストールする必要があります MySQLインストーラー を使用する 。コネクタと拡張機能をダウンロードしたかっただけなので、Webバージョンを使用しました。これを行うと、MariaDBへの接続を追加し、EFモデルを作成できます。

    ただし、これはコードを実行するのに十分ではありません。まず、NuGetを使用してMySQLコネクタを追加する必要があります。

    残念ながら、MySQL for Visual Studioは、古いバージョンのプロバイダーへの参照を追加します(ここ )、新しいバージョンをロードできません。これを修正するために、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 forVisualStudioはVisualStudio2013ではサポートされていません

    更新-2017

    Connector / .NETは本質的に停滞しており、2013年と同じ問題が発生しています。たとえば、真の非同期呼び出しはありません。 「非同期」呼び出しは偽物です。これらは別々のスレッドで実行され、asyncを使用するという目的そのものを無効にします。 。それだけでは、最小を使用してできるだけ多くのリクエストを処理したいWebアプリケーションには適していません。 スレッド数/CPU。

    .NETCoreのサポートについては気にしないでください。

    そのため、過去数年間で、人々は独自の真に非同期のプロバイダーを構築してきました。最も人気のあるもののいくつかは次のとおりです。

    • MySqlConnector .NETおよび用の真の非同期プロバイダーを提供します .NET Core
    • ザボン MySQLConnectorに加えてEFコアサポートを提供します

    それぞれ約100KのNuGetダウンロード、頻繁なバージョン、アクティブなメンテナンスがあります。

    それらは「公式」ではありませんが、間違いなく試す価値があります

    封鎖の更新-2020年4月

    MySqlConnectorとPomeloは本当に離陸したようです。

    Connector/.NETはついにいくつかのバージョン をリリースしました 最新の8.0.19でほぼ2年後、 233K ダウンロード。

    MySqlConnector 一方、 496Kを取得しました バージョン0.61.0のダウンロード。マイナーアップデートは頻繁に行われ、最新の0.63.2はこの投稿の8時間前にリリースされます。それはおそらく少し頻度が高すぎますが、2年よりはるかに優れています。

    機能やMySql8の互換性はまだチェックしていません。ただし、選択する必要がある場合(おそらく来週のプロジェクトで行う予定です)、MySqlConnectorから始めます。

    Connector / .NETは、.NET Coreのリリースに対応するために、はるかに頻繁な更新を提供することを余儀なくされると思いますが、それは現時点では単なる推測です。




    1. 重複する行を削除します(重複するすべての行を削除しないでください)

    2. データベースに挿入する前に、最初の文字(式)に基づいて最初の3文字をトリミングする方法

    3. mysqlでテーブルの外部キーを取得するにはどうすればよいですか?

    4. .NETでのMySQLデータベースへの接続