У меня есть код C #, который выглядит как
using (DataContext db = new DataContext(Program.config.dbContextStr)) {
Foo.bar(db);
}
Таким образом, bar является статическим методом класса Foo, а bar использует переданный объект db. Он также передает объект db некоторым другим вызываемым им методам.
Проблема в том, что я получаю это исключение:
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'DataContext accessed after Dispose.'.
Я искал решения, и люди предлагали забыть декларацию using
и просто написать:
DataContext db = new DataContext(blah);
Foo.bar(db);
// Let the garbage collector go about its merry business.
и отключить отложенную загрузку:
db.DeferredLoadingEnabled = false;
Foo.bar(db);
Я испробовал оба эти решения, но все еще получаю исключение. Есть ли другие вещи, которые я должен попробовать?