Можно ли использовать контекстный синглтон в однопользовательском настольном приложении? - PullRequest
0 голосов
/ 30 января 2012

Однопользовательское настольное приложение уникально тем, что вы знаете, что данные в памяти актуальны. Таким образом, вместо того, чтобы испытывать трудности, связанные с созданием нового контекста для прерывистых операций базы данных, а затем повторного присоединения объектов, будет ли использование только одного контекста для всего сеанса приложения нести какие-либо риски (кроме многопользовательского требования, возникающего позже)?

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Единственный риск использования одного DataContext - слишком большой журнал изменений, AFAIK, исчерпание основной памяти или потеря большого количества изменений, внесенных пользователем в случае сбоя. Я не уверен, что поведение транзакции настраивается.

Но вам придется управлять синхронизацией потоков (как и с любыми общими данными в многопоточном приложении), поэтому, возможно, вам лучше использовать DataContext для каждой операции с данными - например, открытие Form для редактирования пользователей в приложении должно открыть его DataContext и зафиксировать его при сохранении или закрытии.

0 голосов
/ 30 января 2012

Контекст основан на «транзакции» (т. Е. Для фиксации).Поэтому я не стал бы делать это синглтоном.

Мне нравится эта статья: Singleton datacontext , где говорится, что:

DataContext является легким и недорогимдля создания

и

Вы, вероятно, экономите несколько десятков миллисекунд.На ум приходит слово микрооптимизация - в этом случае вам, вероятно, не следует использовать Entity Framework.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...