У меня есть фотогалерея ASP.Net MVC 3, которая разработана таким образом:
Data Repositories(IImageRepoSitory, ITagRepository etc)
|
Services (IGalleryService, IWebService etc)
|
Web Application
Который я использую Ninject для добавления необходимых сервисов и репозиториев в веб-приложение.
Прежде чем использовать реальную базу данных, я использовал простой ArrayList (и сериализацию JSON) в качестве моей постоянной логики (это будет JsonImageRepository / JSonTagRepository), которая прекрасно работает. Но позже я перешел на EF4 CTP5 (Code First), и появилось много проблем. По сути, я внедрил эти репозитории и сервисы как Singleton (который объявлен в Global.asax.cs), но когда у меня есть несколько потоков, которые обращаются к репозиториям, он говорит:
Соединение данных закрыто.
Я изменил что-то вроде режима потока или режима запроса в Ninject, но возникли различные исключения (в отношении нескольких экземпляров контекста, поэтому я думаю, что Singleton должен быть единственным вариантом).
Что-то не так с дизайном? или как мне настроить эти компоненты?