У меня есть фотогалерея 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 должен быть единственным вариантом).
Что-то не так с дизайном? или как мне настроить эти компоненты?