質問: あなたはこのタイプの質問に遭遇したかもしれませんが、私の場合は少し異なるシナリオであり、実行可能な答えを見つけることができません。 (すでに存在するかもしれませんが、私は見つけられませんでした)。 私は、機能全体が複数のクラスライブラリに分割されているビジネスアプリケーションに取り組んでいます。私はEntity Frameworkを使用していますが、それを組み込むための適切な場所がわかりません。私の場合、私はこれらのライブラリを持っています: * Project.Library.Core * Project.Library.Models(エンティティデータモデルとエンティティを含みます)。 * Project.Library.Auth(認証関連およびユーザー管理クラスが含まれます)。 * エンティティとdbコンテキストを頻繁に使用する同様のクラスです。 この作業を行うために、私はEntity Frameworkをすべてのライブラリに個別にインストールする必要があります。最終的には、多数のASP.NET MVC Webアプリケーションに含まれます。私はEntity FrameworkをWebアプリケーションに直接インストールしていただろうが、このアプリケーションは将来、可能なWindowsストアアプリと共にモバイルアプリケーションを持つだろう。その場合は、ASP.NET Web APIを設定し、既存のクラスライブラリを使用して必要なデータを生成するだけです。これはEntity FrameworkをWebアプリケーションに直接組み込むことから私を守る唯一の要素です。 だからあなたの意見は? Entity Frameworkを個別に(適切に機能するために必要な)各ライブラリに組み込むか、単にWebアプリケーションに組み込み、後でWeb APIに同じアプローチを従わせますか? ありがとうございました。
回答: EntityFrameworkを**Project.Library.Models**に1つだけインストールする必要があります。標準のコードファーストオブジェクトをDTOとして想定すると、コンテキストオブジェクトをデータアクセスレイヤーでラップする限り、直接参照は必要ありません。 そのアセンブリへの参照を追加すると、必要なDLLがアプリケーション、Webサイトなどに組み込まれます。EntityFramework.SqlServerを使用している場合、Visual Studioでは一時的な依存関係が検出されないため、何かをする必要があることに注意してください次のように: ``` class Include { private Include() { } private SqlProviderServices IncludeSql; } ``` modelsプロジェクトのどこかに、DLLもコピーされます。