Я новичок в базах данных и linq, поэтому мою проблему можно считать тривиальной. В настоящее время я запускаю все свои запросы к базе данных в каждом классе с:
DataClassesDataContext db = new DataClassesDataContext()
Затем я продолжаю делать любой запрос linq, который мне нужен внутри метода, и продолжаю основную логику приложения.
Теперь два интересных запроса:
1) Мне кажется, я видел людей, которые оборачивали использование БД в «использование». Такие как:
using (DataClassesDataContext db = new DataClassesDataContext())
{
...
}
Если это правильно, то не означает ли это, что мой класс больше не может использовать переменную-член 'db', а эти запросы к db необходимо выполнять в каждом вызове функции? Кроме того, что именно произойдет, если я не буду использовать «использование» в вызовах?
2) Запустив мое приложение с включенным SQL Profiler, я вижу множество соединений, открывающихся и закрывающихся. Означает ли это, что каждый вызов DataClassesDataContext создает отдельное соединение? Это кажется неэффективным, поэтому правильный ли способ сделать объект DataClassesDataContext статическим в каждом используемом классе?