Ich habe ein Problem bei der Verwendung der Asp.Net Cache-Funktionalität. Ich füge ein Objekt zum Cache hinzu, dann zu einem anderen Zeitpunkt hole ich dieses Objekt aus dem Cache, modifiziere eine seiner Eigenschaften und speichere die Änderungen in der Datenbank.Asp.Net Cache, ändern Sie ein Objekt aus dem Cache und es ändert den zwischengespeicherten Wert
Aber das nächste Mal, wenn ich das Objekt aus dem Cache bekomme, enthält es die geänderten Werte. Also, wenn ich das Objekt verändere, ändert es die Version, die im Cache enthalten ist, obwohl ich es nicht speziell im Cache aktualisiert habe. Weiß jemand, wie ich ein Objekt vom Cache bekommen kann, das nicht auf die zwischengespeicherte Version verweist?
dh
Schritt 1:
Item item = new Item();
item.Title = "Test";
Cache.Insert("Test", item, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
Schritt 2:
Item item = (Item)Cache.Get("test");
item.Title = "Test 1";
Schritt 3:
Item item = (Item)Cache.Get("test");
if(item.Title == "Test 1"){
Response.Write("Object has been changed in the Cache.");
}
Mir ist klar, dass mit dem obigen Beispiel würde es Sinn machen dass irgendwelche Änderungen an dem Gegenstand sich im Cache spiegeln, aber meine Situation ist ein bisschen komplizierter und ich will definitiv nicht, dass das passiert.
Vielleicht 'Item' ist ein' struct'? Ein vollständiges Codebeispiel wäre hilfreich ... –