Ну, похоже, что я застрял в структуре приложения. Вот что я хочу сделать:Entity Framework ObjectContext с впрыском зависимостей
- UI layer: веб-сайт ASP.NET.
- BLL: уровень бизнес-логики, который вызывает репозитории на DAL.
- DAL: .EDMX-файл (Entity Model) и ObjectContext с классами репозитория, которые абстрагируют операции CRUD для каждого объекта.
- Сущности: организации POCO. Настойчивость Невежественная. Создано Microsoft ADO.Net POCO Entity Generator.
Я хотел бы создать obejctcontext для HttpContext в своих хранилищах, чтобы предотвратить проблемы с производительностью/потоком [un]. В идеале было бы что-то вроде:
public MyDBEntities ctx
{
get
{
string ocKey = "ctx_" + HttpContext.Current.GetHashCode().ToString("x");
if (!HttpContext.Current.Items.Contains(ocKey))
HttpContext.Current.Items.Add(ocKey, new MyDBEntities());
return HttpContext.Current.Items[ocKey] as MyDBEntities ;
}
}
Проблемы в том, я не хочу, чтобы получить доступ к HttpContext в моем DAL (Где хранилища расположены). Но я должен как-то передать HttpContext в DAL. основанный на ответе на мой вопрос here, я должен использовать шаблон IoC. В идеале я хотел бы достичь чего-то вроде this в многоуровневой архитектуре.
Я проверил Autofac и кажется очень перспективным. Но Я не уверен, как я мог это достичь (Передача Httpcontext, чтобы убедиться, что один объект ObjectContext создан для HttpContext) в многоуровневой архитектуре. Может ли кто-нибудь дать мне какой-нибудь рабочий пример о том, как этого достичь? Как я могу знать HttpContext в DAL без прямого доступа к HttpContext в DAL? Я чувствую, что немного теряю при разработке многоуровневого решения.
Спасибо Ladislav. Если бы я мог, я бы это сделал +10! – Kamyar