In fact this is two questions in one:
- When should I
Dispose()of a context? - What should be the lifespan of my context?
Answers:
-
Never 1.
usingis an implicitDispose()in atry-finallyblock. A separateDisposestatement can be missed when an exception occurs earlier. Also, in most common cases, not callingDisposeat all (either implicitly or explicitly) isn’t harmful. -
See e.g. Entity Framework 4 – lifespan/scope of context in a winform application. In short: lifespan should be “short”, static context is bad.
1 As some people commented, an exception to this rule is when a context is part of a component that implements IDisposable itself and shares its life cycle. In that case you’d call context.Dispose() in the Dispose method of the component.