0

Web検索に表示され、会社情報が表示されるため、これを削除します

4

1 に答える 1

1

リポジトリを初期化する必要があります。サンプルを見て、これをどのように行うことができますか?

1ºソリューション-一般的な実装ではありません...このシナリオでは、エンティティごとに特定の複雑なクエリを実行できます。

public class BloginectUow : IDisposable
{
    private BloginectDbContext DbContext = new BloginectDbContext();

    public ICompanyRepository Companies { get; set; }      

    // constructor
    public BloginectUow()
    {
        // initialize your repository..
        Companies = new CompanyRepository();
    }

    /// methods...
}

この場合、ICompanyRepositoryインターフェースを実装するためのクラスが必要です。

public class CompanyRepository : ICompanyRepository {

   // methods of the interface to data access... from entity framework or nhibernate or ado.net or whatever...

}

2ºソリューション-または、汎用リポジトリを使用できます。

public class BloginectUow : IDisposable
{
    private BloginectDbContext DbContext = new BloginectDbContext();

    public IRepository<Company> Companies { get; set; }      

    // constructor
    public BloginectUow()
    {
        // initialize your repository with a generic implementation..
        Companies = new Repository<Company>();
    }

    /// methods...
}

2番目のケースでは、Repository<T>クラス(サンプルの場合はCRUD操作...が必要)が必要であり、でこのクラスのインターフェイスを使用する必要がありますUnitOfWork

このようにすると、DataAccessの一般的な実装が得られますが、必要なときに複雑なクエリを実行することはできません。複雑なクエリを実行する必要がある場合は、エンティティごとにリポジトリの単一の実装を取得し、汎用リポジトリからifを継承し、複雑なクエリを実行するメソッドを実装することをお勧めします。これは良い習慣です。

于 2012-12-01T14:09:24.670 に答える