Usuário com melhor resposta
Refresh não está funcionando

Pergunta
-
Olá amigos,
Tenho duas telas usando LINQ, uma filha da outra. A primeira utiliza uma view VW_PEDIDO e a segunda utiliza uma view VW_PEDIDO2 (ambas utilizam BindingSource). As duas tem mais ou menos os mesmos campos. O problema é o seguinte:
Na segunda tela eu altero dados via LINQ na VW_PEDIDO2. Quando fecho essa tela e retorno para a primeira tela, os dados da view VW_PEDIDO não estão atualizados. Perfeito. O problema é que mesmo que eu re-execute o comando LINQ que carrega a VW_PEDIDO, os dados não são atualizados. Os dados só são atualizados quando eu fecho a tela e abro de novo.
Como posso resolver isso?
Obrigado
André
Respostas
-
Rui,
Achei o problema.
Quando o DataContext está com a opção ObjectTrackingEnabled setada para True (Default), ele usa o cache para listar os dados.
Setando essa opção para false resolve o problema.
Lembrando que quando seta essa opção para false, o context fica read-only. Portanto, deve-se usar um context especifico para leitura de dados
[]s- Marcado como Resposta André Scaravelli sexta-feira, 17 de julho de 2009 14:59
Todas as Respostas
-
-
-
onde vc instancia o seu DataContext ? no formulario ou nos metodos ?
esperimenta criar um metodo para a carga no formulario e centralizar tudo nele....
private void CarregarDados() {
using (var context = new SeuDataContex()) {
gridPedidos.DataSource = context.VW_PEDIDOs.ToArray();
}
}
e usar esse metodo no Form_Load, apos o metodo de gravação e etc...
o importante ai... é usar uma instancia nova do DataContext toda a carga de dados... para evitar esse "cache" que acontecendo (o que é estranho de ocorrer em um windows forms)
Se não funciona de um jeito, tente de outro totalmente diferente ^_^ -
Rui,
Achei o problema.
Quando o DataContext está com a opção ObjectTrackingEnabled setada para True (Default), ele usa o cache para listar os dados.
Setando essa opção para false resolve o problema.
Lembrando que quando seta essa opção para false, o context fica read-only. Portanto, deve-se usar um context especifico para leitura de dados
[]s- Marcado como Resposta André Scaravelli sexta-feira, 17 de julho de 2009 14:59
-
Rui,
Achei o problema.
Quando o DataContext está com a opção ObjectTrackingEnabled setada para True (Default), ele usa o cache para listar os dados.
Setando essa opção para false resolve o problema.
Lembrando que quando seta essa opção para false, o context fica read-only. Portanto, deve-se usar um context especifico para leitura de dados
[]s
Faz sentido... mesmo pq View deveria ser readonly mesmo
Se não funciona de um jeito, tente de outro totalmente diferente ^_^