|
An entity object cannot be referenced by multiple instances of IEntityChangeTracker
|
|||
---|---|---|---|
#18+
Здравствуйте! Подскажите, как можно разрулить такую ситуацию. Пишу Asp.NET MVC приложение. В качестве IoC использую Ninject Работа с БД осуществляется через EntityFramework (CodeFirst) Код инициализации ninject: Код: c# 1. 2. 3. 4. 5. 6. 7.
Код DBContext: Код: c# 1.
В MailTasks лежат записи с письмами, которые надо отослать в определенные даты. Для этого в MailTaskService написан метод "ProcessMailTaskQueue()", который навешивается на триггер, запускаемый раз в минуту. Инициализация триггера делается в global.asax. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Функции отправки письма такие: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
RepositoryHelper - статический класс, который через DependencyResolver достает нужный интерфейс. При отработке метода на строке "RepositoryHelper.MailTasks.Delete(task);" ловится ошибка "An entity object cannot be referenced by multiple instances of IEntityChangeTracker". Если ninject инициировать так: Код: c# 1.
то все работает нормально. Но не уверен, что такая инициализация здесь применима. Попробовал написать отдельный Action, который просто запускает "ProcessMailTaskQueue" и дернуть его из браузера - все отрабатывает замечательно. Мне кажется, что в случае, когда запуск "ProcessMailTaskQueue" осуществляется через триггер DBContext создается свой при каждом обращении, так как в этом случае нет никакого http-request-а. Подскажите, как можно настроить время жизни DBContext или как можно по иному решить задачу. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2015, 01:10 |
|
An entity object cannot be referenced by multiple instances of IEntityChangeTracker
|
|||
---|---|---|---|
#18+
KononovAI, Код: c# 1.
Так делать в веб точно не надо. Копать здесь: InRequestScope ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2015, 14:26 |
|
|
start [/forum/topic.php?fid=17&fpage=15&tid=1349573]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 406ms |
0 / 0 |