Ich wollte Feedback zu Ihren Gedanken erhalten, ganze Objekte in einer Sitzung zu speichern. Zum Beispiel ein Kundenobjekt. Sobald ein Kunde sich in seinem Control Panel anmeldet, anstatt seine Daten jedes Mal, wenn er von einer ID, die in einer Sitzung gespeichert ist, erneut zu holen, was sind die Vor- und Nachteile des Speicherns des gesamten Kundenobjekts in einer Sitzung?Gedanken zum Speichern ganzer LINQ-Objekte in Sitzung?
So jederzeit erforderlich Sie den Kunden Objekt zu verweisen, könnten Sie einfach tun:
Customer c = (Customer)Session["objCustomer"];
Natürlich würden Sie brauchen, um eine Funktion zu überprüfen und haben, der die Sitzung aktualisiert wird. Sie müssen diese Funktion im Falle einer Nullsitzung oder nach einer Aktualisierung ausführen.
Abgesehen davon, gibt es irgendwelche anderen Probleme, die ich beachten sollte, es auf diese Weise zu tun? Es scheint, dass dies viel besser wäre, was das Programmieren angeht, und auch weniger Aufrufe an die Datenbank. Gedanken an jemanden?
Sie müssen besonders vorsichtig sein, dass Sie nicht versuchen, lazy-loaded Eigenschaften des Objekts zu folgen. IMO, es ist besser, ein POCO-Objekt zu erstellen, das nur die Eigenschaften enthält, die Sie regelmäßig benötigen, und es in der Sitzung und nicht das gesamte LINQ-Objekt zu speichern. – mellamokb
Einverstanden. Sie möchten ein benutzerdefiniertes Objekt zum Speichern Ihrer Statusinformationen in der Anwendung, getrennt von der eigentlichen Datenbank. Sie möchten nicht, dass Ausdrucksbäume und später bewertete Eigenschaften mit Ihrer Eigenmächtigkeit vermischt werden. – David
Was mellamokb sagte. Hinzufügen, dass ich denke, dass es eine schlechte Idee wäre, weil jemand, der nach Ihnen kommt, versuchen könnte, etwas wie das Objekt zu aktualisieren und Fehler über den Kontext zu erhalten, der entsorgt wird. Die POCO-Methode verfügt über gut definierte und durchsuchbare Mechanismen, um Daten in einen Kontext zurück zu versetzen, sodass Sie in der Datenbank darauf reagieren können. So lange würde es in der App weniger stinken. – Felan