I have a function, and inside that I am creating a DataContext()
everytime the function is called. What is the cost of creating a new DataContext()
. Can I create a static DataContext()
and use开发者_开发技巧 it everywhere. Because The DataContext has a full recording of all the changes when SubmitChanges() fails, is there a way I can remove those specific changes from the DataContext
when SubmitChanges()
fails. My Question is which is better Creating static Datacontext()
or Creating whenever its needed
?
This topic has been discussed quite a bit and you should read this article about DataContext lifetime management. The short answer is that DataContext
is meant to be used for a unit of work, typically a single request. DataContext objects are cheap to construct and there is no database overhead to creating one.
The main reason to avoid a shared instance of DataContext
is because of thread safety and change tracking. Each modification you make to a repository object is captured and translated into update/insert/delete operations when you call SubmitChanges()
. This feature breaks down when using a single DataContext
object.
精彩评论