8

私のソリューションのプロジェクトは次のように設定されています。

  • アプリデータ
  • 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

最後に、私の問題にたどり着きました。コード ライブラリであり、エントリ ポイントがないことを考慮して、コンストラクター インジェクションを使用するにはどうすればよいでしょうか。DataRepositoryAppContextそのプロジェクトから Entity Framework を参照する必要があるため、App.Web でブートストラップできません。

それとも私は愚かなことをしているだけですか?

4

1 に答える 1