У меня есть несколько вопросов, касающихся управления экземплярами контекста структуры сущностей.
Моя кодовая база состоит из множества независимых компонентов / агентов, работающих в одном процессе, которые могут выполнять работу только путем чтения сообщений из соответствующих очередей вих удобство (когда компонент готов, он будет забирать следующее сообщение из очереди, чтобы не было проблем с параллелизмом на уровне компонента)
Каждый из компонентов должен взаимодействовать с базой данных независимо от других компонентов.Мне интересно, как лучше настроить контекстные экземпляры для каждого компонента.Вот некоторые из параметров
1> Иметь один экземпляр контекста, используемого всеми компонентами.-> Я думаю, что это наихудшее, поскольку оно создает много проблем с параллелизмом?
2> Предоставить каждому компоненту независимый экземпляр контекста.-> Это выглядит хорошо, но
нормально ли иметь много контекстно-независимых экземпляров в одном процессе, когда все компоненты одновременно работают в этом процессе?
Должен ли я создавать новый экземпляр контекста для каждого нового сообщения, которое будет обрабатывать компонент, или сохранять один экземпляр контекста для жизни компонента?Я думаю, что последний имеет больше смысла, но я более привык использовать контекст в скобках использования {}, и я не уверен, что поддержание одного контекста в течение жизни каждого компонента имеет какие-либо сложности в том, как я его использую?
Могу ли я рассчитывать на оптимистическую параллельность, чтобы два разных независимых компонента не помещали одну и ту же запись в базу данных, если все контексты находятся в одном процессе?
Кстати, я использую Entity Framework 4.1.