J'ai deux tables (Knicks et Knacks) et une vue qui joint les deux tables (PaddyWhacks). Les tableaux ont les champs suivants:Les données de vue SQL ne sont pas correctement mises à jour
Knicks.key, Knicks.data1
Knacks.fkey, Knacks.data2
donc la vue CONTIENT:
PaddyWhacks.key, PaddyWhacks.data1, PaddyWhacks.data2
j'utilise LINQ to SQL pour récupérer la vue plein IQueryable et tout semble bon. Après cela, je prends une ligne de Knicks et le mettre à jour:
Knick k = db.Knicks.Single(row => row.data1 == 5);
k.data1 = 6;
db.SubmitChanges();
Je sais que la mise à jour est correcte, parce que si je joue un comte() sur Knicks où data1 == 5, le résultat a changé (et je peux coup d'oeil dans la base de données et voir le changement). Cependant, si je à nouveau récupérer Paddywhacks à l'aide:
IQueryable<PaddyWhack> rows = from row in db.PaddyWhacks select row;
La valeur data1 correspondante est encore 5.
L'application est en cours d'exécution sur un serveur Web hébergé et si j'attends assez longtemps et de revenir pour essayer à nouveau, Je verrai la valeur mise à jour dans la vue IQueryable. Je suppose que quelque chose est en cache et peut-être que LINQ ne retourne pas à la base de données pour récupérer les données. Existe-t-il une fonctionnalité LINQ ou SQL Server dont j'ai besoin pour résoudre le problème?
Ceci est assez effrayant. –