これらのビデオ シリーズに従って、VS2013 を使用して ASP.Net MVC Web アプリケーションを作成する方法を学んでいます。次のエラーが発生したとき:
不変名 'Oracle.ManagedDataAccess.Client' を持つ ADO.NET プロバイダーの Entity Framework プロバイダーが見つかりません。アプリケーション構成ファイルの「entityFramework」セクションにプロバイダーが登録されていることを確認してください。詳細については 、http: //go.microsoft.com/fwlink/?LinkId=260882を参照してください。
(ビデオでは、使用されているデータベース プロバイダーはSystem.Data.SqlClient
ASP.Net アプリケーションでは当然ですが、使用する必要がありますOracle.ManagedDataAccess.Client
)
エラー自体は、SOでは新しいものではありません。そして、エラー メッセージと SO の質問の受け入れられた回答で示唆されているように、ODP.Net プロバイダーが EF 6.0 でサポートされているかどうかを確認したところ、 . それにもかかわらず、私はまだそれを機能させることができません。
私は MVC にかなり慣れていないので、この時点で間違って理解している MVC アプリケーション/設定の概念があれば、あなたの理解を求めます。あなたの修正を受け入れます。
役に立つかもしれないいくつかの追加情報:
- VS2013 が提供する ASP.Net Web アプリケーション テンプレートを使用して、プロジェクトを開始します。私はそれにMVCテンプレートを使用し、「フォルダーとコア参照を追加する」MVCのみを使用します。「単体テストを追加する」でも「クラウドでホストする」でもありません
- テンプレートには
app.config
ファイルはありませんが、ファイルはありWeb.config
ます (これは何か違いがありますか? エラー メッセージで、「プロバイダーがアプリケーション構成ファイルの 'entityFramework' セクションに登録されていることを確認してください」と提案されています)。 - Web.config ファイルで、次の
entityFramework
部分を見つけました。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
あることに気付く
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />`
そこにライン。したがって、同様に追加しようとします:
<provider invariantName="Oracle.ManagedDataAccess.Client" type=???, EntityFramework.???" />
type
しかし、属性に何を書けばいいのかわからずEntityFramework.???
、数時間立ち往生しています。入れないと、次の警告が表示されます。必要な属性「タイプ」がありません
これについての助けをいただければ幸いです。
この問題を解決するためにプロバイダーを追加する以外に、他に何かする必要があることがわかっている場合も、私はオープンです。ファイル内の接続文字列は次のweb.config
とおりです。
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-MvcWebApplication1-20160212010850.mdf;Initial Catalog=aspnet-MvcWebApplication1-20160212010850;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="EmployeeContext" connectionString="Data source=aaaaa;user id=bbbbbb;password=cccccc;persist security info=True" providerName="Oracle.ManagedDataAccess.Client"/>
</connectionStrings>