私のソリューションのプロジェクトは次のように設定されています。
- アプリデータ
- App.モデル
- App.Web
App.Data では、Entity Framework を使用して多数のリポジトリを使用してデータにアクセスし、データとのやり取りを抽象化しています。明らかな理由から、App.Web が Entity Framework ではなく App.Data プロジェクトのみを参照するようにしたいと考えています。
コンストラクター インジェクションを使用して、コントローラーに次のようなリポジトリ コンテナーへの参照を提供しています。
public interface IDataRepository
{
IUserRepository User { get; set; }
IProductRepository Product { get; set; }
// ...
}
public class DataRepository : IDataRepository
{
private readonly AppContext _context;
public DataRepository(AppContext context)
{
_context = context;
}
// ...
}
DataRepository
すべての子リポジトリがデータベースへのアクセスに使用するオブジェクトAppContext
(Entity Framework の から継承) があります。DbContext
最後に、私の問題にたどり着きました。コード ライブラリであり、エントリ ポイントがないことを考慮して、コンストラクター インジェクションを使用するにはどうすればよいでしょうか。DataRepository
AppContext
そのプロジェクトから Entity Framework を参照する必要があるため、App.Web でブートストラップできません。
それとも私は愚かなことをしているだけですか?