Entity Framework 4.4 および MySql を使用した MVC4 での「メタデータを取得できません」エラーのトラブルシューティング
「メタデータを取得できません」エラーが発生した場合Entity Framework 4.4 および MySql を使用して MVC4 をセットアップする際には、構成を徹底的に検証することが重要です。この問題に対処する手順は次のとおりです。
1.モデルと DbContext クラスを検査する
モデル クラス (例: この場合は Product と ProductImage) が必要なデータ アノテーションで適切に構成されていること、および DbContext クラス (BTDContext) が DbContext を正しく拡張していることを確認します。
2. Web.config 接続文字列を確認します
web.config ファイル内の接続文字列が MySql に対して正しく設定されていることを確認します。次の形式である必要があります:
<code class="xml"><connectionStrings> <add name="BTDContext" connectionString="Server=host_name;Database=database_name;Uid=user_id;Pwd=password;" providerName="MySql.Data.MySqlClient" /> </connectionStrings></code>
3.プロバイダー ファクトリ構成を検討してください
web.config ファイルにプロバイダー ファクトリを追加または削除する必要がある場合があります。以下を追加してみてください:
<code class="xml"><system.data> <DbProviderFactories> <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.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data></code>
4.スキャフォールディングの接続文字列を変更
MySql 接続文字列ではスキャフォールディングが失敗する場合があります。これを解決するには、次のように変更します:
<code class="xml"><connectionStrings> <add name="BTDContext" connectionString="Data Source=host_name;Database=database_name;uid=user_id;pwd=password;" providerName="System.Data.SqlClient" /> </connectionStrings></code>
コントローラーを追加してスキャフォールディングを生成したら、接続文字列を適切な MySql 構成に戻します:
<code class="xml"><connectionStrings> <add name="BTDContext" connectionString="Data Source=host_name;Database=database_name;uid=user_id;pwd=password;" providerName="MySql.Data.MySqlClient" /> </connectionStrings></code>
5.その他の設定を確認します
次のことを確認してください:
6.追加の解決策を検討します
上記の手順で問題が解決しない場合は、他の解決策を検討してください:
以上が以下に、提供された記事の本質を捉えた質問ベースのタイトルをいくつか示します。 * Entity Framework および MySQL を使用した MVC4: メタデータを取得できないのはなぜですか? * 「復元できない」のトラブルシューティングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。