0

WPFデスクトップアプリケーション(NS:MyCompany.MyProduct)でEntityFramework4を使用しています。

ここで、ASP.NET(NS:MyCompany.MyProduct2)で、まったく同じ機能を備えた同じアプリケーションを作成したいと思います。したがって、WPFアプリケーションとまったく同じデータベースを使用する必要があります。

さらに、プライマリWPFプロジェクトの上に新しい実行可能ファイル(したがって新しいwpfプロジェクト)を作成します。これもWPF / ASP.NET-Applicationのような同じConnectionStringを使用して、いくつかのレポートを表示します。

そのため、.edmx-Model(NS:MyCompany.MyProduct.Models。DBModel.edmx)と、WPFアプリのapp.configまたはのweb.configに既に保持されているConnectionStringを共有する必要があることがわかりまし。 ASP.NET-App。

これを行うための最良または推奨される方法は何ですか?

4

3 に答える 3

1

ここで@Jamesに同意します。ライブラリ プロジェクトをソリューションに追加することを恐れないでください。したがって、EDMX を含む MyCompany.Model というプロジェクトが作成されます。(実際には、後で T4 世代を使用してモデルを DbContext または ObjectContext から分離したいと思うかもしれませんが、それは別の議論です。)

Visual Studio を使用すると、プロジェクト (EDMX プロジェクト) を複数のソリューションに実際に追加できます。ただし、一方のソリューションを編集して他方のソリューションを壊す場合は、EDMX プロジェクトを変更しないように注意してください。

敬意を表して、特に EDMX がまだ進化している場合は、ここで GAC を使用するのが理想的ではないことに気付くかもしれません。

接続文字列に関しては、これらはプロジェクト間で共有しない傾向があるものの 1 つです。通常、これらは実行可能プロジェクトの app.config (または web.config) にあります。ライブラリ プロジェクトを使用して EDMX を保持する場合、EF は接続文字列を含む app.config をライブラリ プロジェクトに自動的に作成するためです。しかし、.NETはDLL に app.config を使用しません。それが存在する唯一の理由は、実行可能 (WPF) app.config または web.config の実際の app.config にコピー/貼り付けできるものを提供することです。

于 2012-08-27T13:57:44.860 に答える
1

これを行うための最良または推奨される方法は何ですか?

クラス ライブラリ プロジェクトを作成し、そこに EF モデルを配置して、WPF/Web プロジェクト間で共有します。ライブラリ プロジェクトの app.config ファイルは親プロジェクトによって取得されないため、手動で web.config ファイルを更新してConnectionStringセクションを追加する必要があります。

このアプローチにより、WPF アプリと Web アプリの間でビジネス ロジックを共有できます。基本的に同じアプリであるが、プラットフォームが異なる場合は、UI のみを再実装する必要があります。これは、MVC パターンの主な利点の 1 つです。

于 2012-08-27T13:29:44.017 に答える
0

1 台のマシン上の 3 つのアプリケーションすべてで 1 つの .edmx dll を共有することが目標である場合、これを達成するための最良の方法は、dll に署名してから GAC に追加することです。dll が別のサーバーに残る場合は、dll を GAC する必要はありません。プロジェクトで参照するだけで、それぞれの .configs に接続文字列エントリを追加できます。

GAC: http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.100).aspx

DLL を GAC にインストールします: http://msdn.microsoft.com/en-us/library/dkkx7f79.aspx

于 2012-08-27T13:27:35.027 に答える