0

私の質問は簡単です: クラス ライブラリで MySql Entity Framework 5 を操作するために、ASP.NET アプリケーションで MySql.Data.Entity を参照する必要があるのはなぜですか?

説明します: サンプル アプリケーションを 2 つのレイヤーで構成しました: Asp.Net Web アプリとクラス ライブラリ (どちらも VB.NET)

Class Library で MySql.Data と MySql.Data.Entity を参照し、そこで Code First モデルと DbContext を作成しました。

Asp.Net App で MySql.Web を参照し、DbProviders を Web Config と接続文字列に配置しました。

単純なクエリを実行しようとすると、MySql.Data.MySqlClient.MySqlClientFactory.get_MySqlDbProviderServicesInstance() で一般的な NullPointerException が発生して失敗します

ただし、MySql.Data.Entity を Web アプリにインストールすると、すべてがうまくいきます。

私の考えでは、データ アクセス レイヤーをプレゼンテーションから分離している場合、データ レイヤーでのみ使用される dll を参照する必要があるのはなぜですか? これは、CLR がアセンブリをロードする方法に関連していますか? それとも私は何か間違ったことをしていますか?

4

1 に答える 1

0

クラス ライブラリは MySql Entity Framework 5 を参照しているため、インストールする必要があります。ローカルで開発している場合、最初にこれらのビットをインストールしなくてもアプリケーションをコンパイルできる可能性があります (クラス ライブラリへの参照がコンパイル済みの DLL に対するものであると仮定します) が、アプリケーションを実行することはできません。

于 2013-10-17T17:12:55.603 に答える