Web検索に表示され、会社情報が表示されるため、これを削除します
質問する
176 次
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 に答える