Hallo,
ja, das hatte ich nicht bedacht (obwohl ich selbiges Problem bei meinem aktuellen Projekt habe).
Aufgrund des Connection-Poolings sollte man die Entitäten immer nur kurzzeitig benutzen.
Eine Alternative dazu wäre, daß die Methode schon die "materialisierten" Werte zurückgibt, also als
List<T>:
C#-Quelltext
1: 2: 3: 4: 5:
| private IList<T> executeSQL<T>(Func<DBEntities, IQueryable<T>> sqlQuery, string errorMsg) { return result.ToList(); } |
Möchte man hingegen den Rückgabewert für weitere Linq-Funktionalitäten (direkt auf der Datenbank) benutzen, so muß man wohl (wie du in deinem Edit beschrieben hast) den Context von außen erzeugen und übergeben.