像大多数人一样,我一直在努力理解实体框架的某些细节。其中之一是上下文的生命周期。我正在使用存储库,并已决定上下文将在请求的整个过程中存在。因此,无论该存储库在Web层的哪个位置被使用,都需要从Web层注入上下文。
我编写了一些代码,我确信可以重构(实际上,肯定可以!)。那么基于上述概念,您将如何优化以下存储库助手?
public class RepositoryHelper
{
public static CountryRepository GetCountryRepository() {
return new CountryRepository(HttpContext.Current.GetObjectContext());
}
public static CurrencyRepository GetCurrencyRepository()
{
return new CurrencyRepository(HttpContext.Current.GetObjectContext());
}
public static SettingRepository GetSettingRepository()
{
return new SettingRepository(HttpContext.Current.GetObjectContext());
}
}
一个仓库很简单,看起来像这样:
public class CountryRepository
{
private Context _context = null;
public CountryRepository(Context context)
{
_context = context;
}
public Country GetById(int id)
{
// Would return a country
}
public IEnumerable<Country> All()
{
// Would return a list of countries
}
}