problemas con la cache de Linqtosql

24/09/2008 - 13:22 por [Juanjo] | Informe spam
hola gente:

Tengo el siguiente problema, estoy seguro de que es una tonteria, pero
no doy.

tengo una aplicacion que accede a una base de datos SQL server con LINQ.

Cuando realizo esto:
1. Ejecuto 2 veces la misma aplicacion.
2. Accedo al mismo registro de la misma base de datos desde las dos
ejecuciones
3. Desde una ejecucion modifico algun dato
4. Desde la otra ejecucion vuelvo a recuperar el mismo registro
5. Esta ultima ejecucion no "ve" los cambios efectuados.

Alguien sabe como limpiar la cache?

Muchas gracias
 

Leer las respuestas

#1 Octavio Hernandez
26/09/2008 - 11:40 | Informe spam
Hola, Juanjo!

El contexto ve que ya tiene ese objeto en memoria (por la clave primaria) y
no lo vuelve a traer.
Para "refrescarlo", utiliza el método Refresh() del contexto, que puede
aplicarse a un objeto concreto o un conjunto de objetos. Te mando un
ejemplillo.

Slds - Octavio


using System;
using System.Linq;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var ctx = new Futbol2006DataContext();
Console.WriteLine("Leo registro");
var q = (from c in ctx.Clubs
where c.Codigo == "RMA"
select c).Single();
Console.WriteLine(q.Nombre);
Console.Write("Modificar?");
string s = Console.ReadLine().ToUpper();
if (s[0] == 'S')
{
q.Nombre = q.Nombre + "***";
ctx.SubmitChanges();
}
Console.WriteLine("Vuelvo a leer");
try
{
// AQUI
ctx.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues,
q);
Console.WriteLine(q.Nombre);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

Console.ReadLine();
}
}
}





"[Juanjo]" wrote in message
news:%
hola gente:

Tengo el siguiente problema, estoy seguro de que es una tonteria, pero
no doy.

tengo una aplicacion que accede a una base de datos SQL server con
LINQ.

Cuando realizo esto:
1. Ejecuto 2 veces la misma aplicacion.
2. Accedo al mismo registro de la misma base de datos desde las dos
ejecuciones
3. Desde una ejecucion modifico algun dato
4. Desde la otra ejecucion vuelvo a recuperar el mismo registro
5. Esta ultima ejecucion no "ve" los cambios efectuados.

Alguien sabe como limpiar la cache?

Muchas gracias



Preguntas similares