Ich bin neu in Datenbanken und Linq, so dass mein Problem als trivial angesehen werden kann. Ich beginne derzeit alle meine db-Anforderungen in jeder Klasse mit:
DataClassesDataContext db = new DataClassesDataContext()
Dann mache ich eine beliebige Linq-Anfrage innerhalb der Methode und fahre mit der Hauptanwendungslogik fort.
Nun zu zwei interessanten Fragen:
1) Ich glaube, ich habe Leute gesehen, die die DB-Nutzung in "using" einpacken. Wie zum Beispiel:
using (DataClassesDataContext db = new DataClassesDataContext())
{
...
}
Wenn dies korrekt ist, bedeutet dies dann nicht, dass meine Klasse keine Mitgliedsvariable "db" mehr verwenden kann, sondern dass diese db-Anfragen in jedem Funktionsaufruf erfolgen müssen? Und was genau würde passieren, wenn ich in den Aufrufen kein "using" verwende?
2) Wenn ich meine Anwendung mit aktiviertem SQL Profiler ausführe, sehe ich viele Verbindungen, die geöffnet und geschlossen werden. Bedeutet dies, dass jeder DataClassesDataContext-Aufruf eine separate Verbindung herstellt? Das scheint ineffizient zu sein. Ist es also der richtige Weg, das DataClassesDataContext-Objekt zu einem statischen Objekt innerhalb jeder verwendeten Klasse zu machen?