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

Preguntas similare

Leer las respuestas

#6 Jesús López
01/10/2008 - 19:56 | Informe spam
Para no tener que leer dos veces puedes tienes dos opciones:

1) Mantener el mismo contexto en la lectura y al guardar los cambios. Es
decir:
1.1 Creas un contexto Ctx.
1.2 Mediante el contexto Ctx obtienes los datos
1.3 Muestras los datos
1.4 El usuario hace cambios sobre los objetos
1.5 Guardas los cambios usando el mismo contexto creado en 1.1

2) Anexar los objectos al contexto antes de hacer los cambios:
2.1 Creas un contexto Ctx1
2.1 Medianto Ctx1 obtienes los datos
2.2 Destruyes el contexto Ctx1
2.3 Muestras los datos
2.4 El usuario hace cambios sobre los objetos
2.5 Creas un nuevo contexto Ctx2
2.5 Anexas los objectos que han cambiado a Ctx2. (Método Attach o algo
así, no recuerdo exactamente)
2.6 Guardas los cambios usando Ctx2
2.7 Destruyes el contexto Ctx2

Saludos:

Jesús López
www.solidq.com




"[Juanjo]" escribió en el mensaje
news:%
Mostrar la cita
#7 Jesús López
01/10/2008 - 20:05 | Informe spam
Alfredo:

LINQ no está tan mal hecho como dices. No es perfecto, desde luego.

Da la impresión de que sólo como lo haces tú está bien hecho. Creo que
deberías mostrar más respeto al trabajo de los demás. No haces más que
ponerle faltas a todo, pero poco enseñas a hacer las cosas bien (o como
piensas que deben hacerse).


"Alfredo Novoa" escribió en el mensaje
news:13g6rmn3263gh$.114xrstlgi1q3$
Mostrar la cita
#8 Jesús López
01/10/2008 - 20:05 | Informe spam
Alfredo:

LINQ no está tan mal hecho como dices. No es perfecto, desde luego.

Da la impresión de que sólo como lo haces tú está bien hecho. Creo que
deberías mostrar más respeto al trabajo de los demás. No haces más que
ponerle faltas a todo, pero poco enseñas a hacer las cosas bien (o como
piensas que deben hacerse).


"Alfredo Novoa" escribió en el mensaje
news:13g6rmn3263gh$.114xrstlgi1q3$
Mostrar la cita
#9 Jesús López
01/10/2008 - 20:21 | Informe spam
Por cierto, yo también tengo críticas para LINQ to SQL en cuanto a las
actualizaciones.

LINQ to SQL parece promover la idea de que para actualizar un conjunto de
entidades hay que hacer lo siguiente:
1) Primero leeer todas las entidades a actualizar
2) Modificar todas las entidades una a una
3) Salvar los cambios. Lo cual provoca un update por cada una de las
entidades afectadas.

Esto va totalmente en contra de la filosofía de las bases de datos
relacionales en las que la idea es "macroscópica", osea orientada de
conjuntos de filas en vez de "microscópica", o sea haciendo un procesamiento
fila a fila.

1) No es necesario leer un conjunto de filas para poderlas actualizar
2) En vez de modificar las filas una a una se pueden modificar todas de
golpe.


Sin embargo es posible hacer esto último en LINQ to SQL, ya que LINQ to
SQLpermite ejecutar directamente sentencias SQL.









"Jesús López" escribió en el
mensaje news:Oq7ZCB$
Mostrar la cita
#10 Octavio Hernandez
01/10/2008 - 21:35 | Informe spam
Jesús,

Una respuesta muy concisa y completa!
Efectivamente, el método del contexto que mencionas es Attach(). Un buen
post sobre el método es éste:

http://blogs.msdn.com/dinesh.kulkar...ached.aspx

Slds - Octavio



"Jesús López" wrote in message
news:uiZ7Z8%
Mostrar la cita
Ads by Google
Search Busqueda sugerida