1

Ich benutze ADO.NET Entity-Framework, ich habe eine Seite, die Data-gebunden an eine Entität Variable in der Codedatei ist.Wie ein Formular Daten gebunden an ein Objekt mit dem Verlust seiner Werte auf Postback

Die Hierarchie des Elements Person.Orders ist ich der Benutzer möchte hinzufügen/entfernen Aufträge zu dieser Person Entität (Person.Orders.Add (Ordnung)), Das Problem ist, dass, während das Unternehmen noch nicht gespeichert Sobald der Benutzer einen Post zurückgibt, werden die Variablen entsorgt und die Person und alle ihre Bestellungen sind weg. Was sollte eine gute Praxis zum Speichern von Entitäten/Variablen (komplexe) im Cache/Speicher/Zustand oder was auch immer (nicht speichern im Laden, ich möchte Elemente im Speicher nur speichern, wenn der Benutzer auf die allgemeine Änderungen akzeptieren btn, währenddessen möchte ich die Hierarchie in der Luft aufbauen)?

Wenn ich nicht klar genug bin, werde ich morgen weitere Details zur Verfügung stellen, bitte akzeptieren Sie meine Entschuldigung.

+0

Welche Art von Formular? –

+0

Ich wollte sagen, dass ich eine Eigenschaft im Code-Behind habe, die die Entity exponiert, die alle Controls an ihre Kinder gebunden ist. – Shimmy

Antwort

1

Verwenden Sie den Sitzungsstatus, um Ihre Objekthierarchie beizubehalten, während Sie mehrere Aktionen auf dem Client erwarten und laden Sie Ihre Entitäten bei jedem erneuten Laden der Ansicht. Auf diese Weise werden Sie Benutzeränderungen widerspiegeln, und Sie behalten sie im Speicher, bis die letzte Aktion ausgelöst wird. Ab diesem Zeitpunkt werden Sie wahrscheinlich die gesamte Entitätshierarchie speichern.

Beachten Sie jedoch, dass die Anwendungsdomäne mitten im Job Ihres Benutzers entladen wird, wenn Sie die inproc-Sitzung verwenden.

+0

Das klingt fair genug für mich. Wie wird das in kurzen Worten gemacht? Vielen Dank im Voraus! – Shimmy

+0

Kurz gesagt ... okay. Eine Kombination Ihrer Seiten-URL (einschließlich der Abfragezeichenfolge) sollte Ihnen sagen, was die Aktion ist und Ihnen eine Art Schlüssel geben, damit Sie die Entität erhalten (so etwas wie addOrder.aspx? Person = xxx). So erhalten Sie die Person, die zuvor durch diesen xxx-Schlüssel in Sitzung gespeichert wurde. – user134706

+0

Ich fragte, wie technisch das Objekt in der Sitzung zu speichern, wird es nicht zu einem Leistungsproblem führen, oder jeder tut das? – Shimmy

Verwandte Themen