問題タブ [connector-net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 参照: メソッド 'mysql_native_password' を使用したホストへの MySql Connector/Net 認証に失敗しました
私は長い間、次のエラー メッセージの内容と、なぜ接続できなかったのかを突き止めようとしましたが、他の手段はうまくいきました。
エラー メッセージの最初の部分は次のとおりです。
非常に混乱しています。パスワードのスタイルを確認してみてください。おそらく、2 番目の部分をもう一度見ることさえないでしょう。
実際、最初の部分は完全なボロックです。エラーとはまったく関係ありません!
2番目の部分と私の答えに進みます
c# - Where() 内の MySQL Connector/NET Any() が NotImplementedException を引き起こす
かなり大きなレコード セットを検索する目的で動的に生成されるクエリがあります。Entity Framework 6 の NuGet パッケージを介して MySQL Connector/NET 6.8.3 を使用してExpression
いWhere
ます。
私が見ている問題の説明として、多くの詳細レコードを含むレコードがあります。私のフィルターは次の式を生成します (これは からの出力ですExpression.ToString()
):
したがって、クエリは最初に次のように実行され、レコード数を取得します (ページネーション用):
これはうまくいきます。ただし、次のクエリを実行すると、バラバラになります。
NotImplementedException
このクエリは、次の場所で発生する(内の a System.Data.Entity.Core.EntityCommandCompilationException
) をスローします。
私の質問:
これは何が原因ですか?私が見ている MySQL Connector/NET ソース コードのコピーを持っていて、次のように表示されます。
このメソッドを呼び出すのに何が間違っていますか? Any
内部に aWhere
があるクエリを処理できないのはなぜOrderByDescending
ですか? それは私にとって完全に合理的なクエリのように思えます (そして、SQL を簡単に書き出すことができました...の後にを含む の後にが続きます)。Skip
Take
ORDER BY
LIMIT X,Y
WHERE
EXISTS
これは私にかなりの頻度で発生し、一般的にこれを回避する方法を見つけましたが(おそらくここでも同じことをすることになるでしょう)、単純なクエリを実行する必要があるときに常にこれに遭遇することに不満を感じています(通常、Any
a の内側に含まれますWhere
)。
c# - .NET ランタイムが接続プールから (My)SQL 接続を閉じるとき
最近、接続プーリングについて読みました ( msdn、mysql のドキュメント)。
接続プールの目的は、MySQL クライアントが常に接続と切断を強制されないようにすることです。したがって、接続のユーザーが接続を必要としなくなったときに、接続を MySQL クライアントにキャッシュすることができます。したがって、同じ MySQL サーバーへの接続を必要とする別のユーザーは、後でこのキャッシュされた接続を再利用できます (Mikael Ronstrom による)。
これが意味することは次のとおりです。
- MySQLサーバーに接続します
- いくつかのクエリを実行する
- MySqlConnection.Close() を呼び出す
- この時点で接続は閉じられず、クライアント (アプリケーション) の接続プールに保持されます。MySqlConnection.Open(接続文字列) を再度実行すると、アプリケーションの接続プールから接続が作成/取得されます (接続ポーリングは MySqlConnection のインスタンスを返すだけです)。
私はこのコードでテストしました:
.NET ランタイムはどの時点でコネクタ MySqlConnection.ClearAllPools(); を呼び出しますか? または MySqlConnection.ClearPool() 静的メソッド? これらのメソッドは、実際に MySQL サーバーとの接続を閉じます。.NET アプリケーションがクラッシュした場合、wait_timeout が経過した後に MySQL 接続が閉じられますか。アプリケーションの実行の最後 (最後の行) で ClearAllPool() を呼び出す必要があります。
mysql - MySql.ConnectorNET.Data と MySql.Data
MySql.ConnectorNET.Dataと NuGet のMySql.Dataパッケージの違いは何ですか?
どちらも同じユーザー ( MySQL )によって公開されているように見え、Project Site
リンクは同じ場所 ( http://dev.mysql.com/downloads/ ) を指しています。
両方をインストールした後、ConnectorNET バージョンは他のバージョンよりもリリースが遅れているように見えます。
mysql - パフォーマンスが非常に低い Asp.Net MySQL コネクタ/ネット接続プール
MVC Asp.Net Web サイトを持っています。サイト全体に対して単一のグローバル接続を使用することを選択しましたが、「この接続に対して DataReader が既に開いています」というエラーが発生し始めました。したがって、すべてのコマンドで新しい MySQL 接続をインスタンス化するように変更することにしました。
.
ドキュメントには、コネクタが接続プールを使用するため、パフォーマンスは同じであると書かれていますが、ベンチマークを作成すると、違いは非常に大きくなりました。
簡単なコマンド:
... ローカル マシンでの実行には約 50 ミリ秒かかりますが、グローバル接続を使用すると、実行に 0 (ゼロ) ミリ秒かかります! 0ms!!!
それで、私は何か間違ったことをしていますか、それともこのパフォーマンスの違いは本物であり、選択する必要がありますか?
サイト全体で呼び出す唯一のメソッドは、ECN と DS です。
c# - MySQL Connector/Net EF データベースの最初の空間データ型
使用:
- エンティティ フレームワーク 5
- MySQL コネクタ ネット 6.8.4
- MySQL 5.6.21
- ビジュアル スタジオ 2013
- MySQL ワークベンチ 6.2
ワークベンチを使用して MySQL に次のテーブルを作成しました
Visual Studio 2013 でアプリケーションを開き、データ アクセス レイヤー プロジェクトに移動し、.edmx を開き、キャンバスを右クリックして、[データベースからモデルを更新...] を選択しました。新しいテーブルの追加に進み、[完了] をクリックすると、次のように表示されます。
ご覧のとおり、空間データ型はすべて無視されました。
Data Access プロジェクトには、(とりわけ) 次の参照が含まれます。
- EntityFramework
- MySql.Data
- MySql.Data.Entity.EF5
- MySql.Web
- System.Data.Entity
EF では DbGeometry 型になることはわかっていますが、更新プロセス自体がこれを把握できるはずだと思います。また、手動でマッピングを追加することもできますが、次に誰かが「データベースからモデルを更新...」を実行したときにそれらが吹き飛ばされるので、そうしないことをお勧めします。
洞察や提案はありますか?ありがとう!
編集: Entity Framework 6でテストされ、引き続き問題が発生しました
c# - MySql Connector/Net で PAD_CHAR_TO_FULL_LENGTH を設定します
MySQL リファレンス マニュアルに記載されているように、
CHAR 列の長さは、テーブルの作成時に宣言した長さに固定されます。長さは 0 から 255 までの任意の値です。CHAR 値が格納されると、指定された長さになるまで右側にスペースが埋め込まれます。CHAR 値が取得されると、PAD_CHAR_TO_FULL_LENGTH SQL モードが有効になっていない限り、末尾のスペースは削除されます。
Connector/Net で PAD_CHAR_TO_FULL_LENGTH フラグを有効にする方法は? (ODBC ではない)