Tengo un problema cuando uso la funcionalidad Asp.Net Cache. Agrego un objeto a la memoria caché y en otro momento obtengo ese objeto de la memoria caché, modifico una de sus propiedades y luego guardo los cambios en la base de datos.Asp.Net Cache, modifique un objeto de la memoria caché y cambie el valor almacenado en la memoria caché
Pero la próxima vez que obtenga el objeto de la memoria caché, contiene los valores modificados. Entonces, cuando modifico el objeto, modifica la versión que está contenida en el caché, aunque no lo he actualizado específicamente en el Caché. ¿Alguien sabe cómo puedo obtener un objeto del caché que no hace referencia a la versión en caché?
es decir
Paso 1:
Item item = new Item();
item.Title = "Test";
Cache.Insert("Test", item, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
Paso 2:
Item item = (Item)Cache.Get("test");
item.Title = "Test 1";
Paso 3:
Item item = (Item)Cache.Get("test");
if(item.Title == "Test 1"){
Response.Write("Object has been changed in the Cache.");
}
I se dan cuenta de que con el ejemplo anterior tendría sentido que cualquier cambio en el elemento reflejarse en el caché pero mi situación es un poco más complicada y definitivamente no quiero que esto suceda.
Tal vez 'Item' es una 'struct'? Un ejemplo de código completo sería útil ... –