Николай Н. |
---|
Либо создавать экземпляр в каждом методе? |
Это может привести к нежелательной распределённой транзакции.
Есть ещё два способа:
1. Если речь идёт о сервере приложений (WCF, Asp.Net), то можно инжектировать контекст используя DI-контейнер. При этом, время жизни контекста привязать к вызову метода (WCF operation, http request и т. п.), используя LifeTimeManager DI-контейнера. В WPF-приложении такой подход применить, наверное (не пробовал), тоже можно, привязав удаление контекста к
DispatcherHooks.DispatcherInactive Event.
2. Использовать ThreadStatic + счётчик ссылок (см
Фабрика контекстов базы данных).