Entsorgung von Objekt, Kontext, in entity framework 4
Ich habe eine entity-Klasse, die automatisch generiert aus meinem Datenbank Modell. Diese Klasse erbt die ObjectContext, die inturn IDisposable erbt.
Habe ich eine repository, die verschiedenen Methoden, die verwenden eine einzige Instanz der entity-Objekt für die Interaktion mit der Datenbank.
Automatisch generierte Klasse
public partial class DevEntities : ObjectContext
{
public const string ConnectionString = "name=DevEntities";
public const string ContainerName = "DevEntities";
Repository-Klasse
DevEntities db = new DevEntities();
public Customer GetCustomerByID(int id)
{
var customers = db.Customers.FirstOrDefault(c => c.CustomerId == id);
return customers;
}
public Customer GetCustomerByPasswordUsername(string email, string password)
{
var customers = db.Customers.FirstOrDefault(c => c.Email == email && c.Password == password);
return customers;
}
Daraus können Sie sehen, dass ich mehrere Verweise auf die db-Instanz. Meine Frage ist, bin ich besser zu instanziieren Sie ein neues DevEntity innerhalb jeder Methode, also die Möglichkeit zur Umsetzung der using-Anweisung, und so sicherzustellen, dass Sie korrekte Entsorgung, oder ist meine aktuelle Umsetzung in Ordnung?
InformationsquelleAutor hoakey | 2011-01-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde implementieren
IDisposable
auf die Repository-Klasse als gut, so kann es über denObjectContext
. Wenn Sie wieder eine andere ObjectContext jeder Zeit, können Sie auf Probleme stoßen, wenn dabei die Abfragen zwischen diesen Objekten, denn diese sind an verschiedenenObjectContext
s, die zu einer Ausnahme führen.Definition:
Verwendung:
Dabei, das repository kümmert sich um die Entsorgung der
ObjectContext
nachdem Sie es verwendet.Nein, Sie nicht haben, um es zu überschreiben, implementieren Sie die Schnittstelle auf Ihrem repository; jetzt können Sie das repository in der using-Anweisung, so dass die Klasse erhält automatisch entsorgt am Ende der Nutzung.
Sorry für meine Dicke bin ich immer noch nicht ganz Folgen, wie das funktionieren würde. Würden Sie mir die Ausarbeitung ein wenig mehr bitte? Vielen Dank.
perfekt, danke.
Wie Sie wickeln, dass in einem using-Anweisung, wenn Sie haben lazy loading aktiviert?
InformationsquelleAutor Femaref