I\'m using LINQ to SQL in a data access object library. The library is used in both web (web application/web service) and non-web (windows service) contexts. Initially, I st
The guidelines from the MSDN documentation on the DataContext class are what I would recommend following:
In general, a DataContext instance is designed to last for one "unit of work" however your application defines that term. A DataContext is lightweight and is not expensive to create. A typical LINQ to SQL application creates DataContext instances at method scope or as a member of short-lived classes that represent a logical set of related database operations.
Because DataContext
is IDisposable
, I find it easiest to create and use a DataContext
in a using
statement within one method, so it can be disposed of properly.
Also note that "any instance members are not guaranteed to be thread safe", so sharing one DataContext
between multiple threads would be unwise.