EDIT: Doppelte vonShould Entity Framework Context be Put into Using Statement?Entity Framework: Auf welche Nachteile kann ich stoßen, wenn ich meinen Objektkontext nicht beseitige?
Ich habe um diese Idee zu werfen einige Zeit zu fragen, was schlecht durch nicht ordnungsgemäß entsorgen meinen Objektkontext passieren könnte, und ermöglicht es mit dem GC zu sterben. Normalerweise würde ich das meiden, aber es gibt einen triftigen Grund dafür.
Wir verwenden Teilklassen. In diesen partiellen Klassen legen wir Eigenschaften offen, die auf FK-Objekte zugreifen. Angenommen, ich habe eine Customer-Klasse mit einem CustomerType FK-Objekt. In der Klasse, würde ich eine CustomerTypeName Eigenschaft aussetzen, das dies tut:
public string CustomerTypeName {
get {
if (CustomerType == null) {
CustomerTypeReference.Load()
}
return CustomerType.CustomerTypeName;
}
}
Dies funktioniert sehr praktisch, wenn die ursprüngliche Abfrage nicht .INCLUDE („Customer“) zu tun hat.
Wenn ich jedoch den Kontext entsorgt, funktioniert die obige Eigenschaft nicht mehr. Also ... ich denke, das führt zu ein paar Fragen:
1) Wenn ich nie explizit über den Kontext verfüge, welche Negative werde ich sehen, wenn überhaupt?
2) Gibt es einen anderen Weg, um Lazy Loading im obigen Szenario zu erreichen und den Kontext noch zu beseitigen?
mich korrigieren, wenn ich falsch bin, aber das würde bedeuten, ich muss den Überblick über den Kontext von meiner GUI halten würde. Das fühlt sich in einer mehrschichtigen Architektur etwas dreckig an. – bugfixr
nicht mehr schmutzig als Ignorieren und hoffen, dass es weggeht :) – gbjbaanb
Sie interagieren mit ihm aus der GUI sowieso. Indem Sie es entsorgen, sagen Sie der Ressource, dass Sie damit fertig sind. Per Definition, wenn etwas faul ist, sind Sie noch nicht damit fertig. Sie könnten sogar einen einfachen IComponent-Wrapper erstellen und ihn einfach zu Ihren Formular-Komponenten hinzufügen und er wird aufgeräumt, ohne dass Sie sich Sorgen machen oder Codezeilen bilden. –