| 

.NET C# Java Javascript Exception

3
Hallo,

in den Beispielen rund um Linq2Sql findet man stets die Vorgehensweise mit

using (MyDataContext db = new MyDataContext(_connectionString))
{
return db.Tabelle;
}


Das using sichert, dass die DB-Verbindung nach dem Request ordentlich geschlossen wird (Dispose) - das ist doch so, oder?

Ist die Verwendung von Linq2Sql in dieser Art - z.B. in einem ASP.Net-Umfeld - überhaupt sinnvoll? Bei einer stark frequentierten Anwendung wird bei jedem Request ein MyDataContext-Objekt erstellt, kann ich dies nicht einmal beim ersten Request tun und dann dieses Objekt für alle weiteren Anfragen nutzen? Ist das nicht Ressourcen-schonender?

Im Nerddinner-Asp.Net MVC Referenzbeispiel wird die Datenbereitstellungs-Klasse über ein Interface (IDinnerRepository) abgeleitet, aber auch hier habe ich doch für jede Abfrage ein neues DB-Context-Objekt?

Schönen Dank,

Marcel
News:
14.03.2011
msiggi 140 1 5
msiggi 140 1 5
3 Antworten
3
In der MSDN findest du folgende Aussage:
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.

DataContext Class
14.03.2011
Jürgen Luhr 7,1k 2 9
0
Ich weiss zwar nicht ob deine Frage dadurch beantwortet wird,
jedoch arbeitet man in solchen Fällen mit dem Singleton Pattern.

Das using sichert dass der Garbage Collector aktiv wird und verwendete Systemressourcen freigegeben werden.
14.03.2011
webologen 31 3
0
Ich habe mir das using... mit einem Profiler angesehen bei einer Anwendung in der viel auf der Datenbank gemacht wird. Das kostet schon Zeit. Allerdings ist es unbedingt ratsam, das using auszuführen und nicht ein Singleton oder einen globalen Kontext zu verwenden, da man bei zu hohem Traffic irgendwann dann überläuft.
14.03.2011
phlow666 922 1 9
wieso läuft man dann über ?
Das Singleton kann man ja auch disposen.
Wichtig dabei ist ja nur das man den DataContext systemweit nur einmal aufruft.
webologen 15.03.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH