MySQLでデータベースを構築し、Entity Frameworkを使用してデータベースをマップしようとしていますが、EFコンテキストに約20を超えるテーブルを追加しようとすると、「GenerateSSDLException」が発生し始めます。
データベースからの更新中に、タイプ'Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine+GenerateSSDLException'の例外が発生しました。例外メッセージは次のとおりです。'コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。
コマンドの実行中に致命的なエラーが発生しました。
タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。
影響を受けるテーブルについて特別なことは何もありません。同じテーブルになることはありません。特定の(特定されていない)数のテーブルが追加された後、「Timeoutexpired」エラーなしでコンテキストを更新できなくなります。テーブルが1つだけ残っている場合もあれば、3つ残っている場合もあります。結果はかなり予測不可能です。さらに、エラーの前に追加できるテーブル数の差異は、おそらく問題は、既存のテーブル定義と新しいテーブルの両方を含むコンテキストを更新するために生成されるクエリのサイズにあることを示しています。それに追加されています。基本的に、SQLクエリが大きくなりすぎて、何らかの理由で実行に失敗しています。
EdmGen2を使用してモデルを生成すると、エラーは発生しませんが、生成されたEDMXファイルは、前述の例外を生成せずにVisualStudio内で更新できません。
EdmGen2が正常に動作することを考えると、おそらくこの問題の原因はVisual Studio内のツールにありますが、私はそうではないように思われるため、この非常にユニークな問題に取り組む方法について他の人がアドバイスを提供してくれることを期待しています。それを経験している唯一の人。
同僚が提案した提案の1つは、テーブルのクロスオーバーを使用して2つの別々のEBMXファイルを維持することでしたが、私の意見ではかなり醜い修正のようです。これが「新技術」を使おうとして得たものだと思います。:(