2013-01-17 3 views
3

Salut là, je me bats pour faire face à la situation suivante en utilisant LINQPadActualiser DataContext dans LINQPad

While(1 = 1) 
{ 

    MyEntity _me = MyEntities.FirstOrDefault(); 

    foreach(ChildEntity ce in MyEntity.ChildEntities) 
    { 
      Console.WriteLine(ce.Value); 
    } 

    System.Threading.Thread.Sleep(100000); 
} 

Où MyEntity (et la collecte ChildEntities) est un LINQ créé automatiquement à la classe SQL. Les lignes de la base de données sous-jacente peuvent changer indépendamment de ce script et j'aimerais que la collection ChildEntities se rafraîchisse à partir de la base de données à chaque itération de la boucle While. Il ne l'est pas actuellement.

Cela ne fonctionne pas

this.Refresh(RefreshMode.OverwriteCurrentValues, _me); 

ni ne

this.Refresh(RefreshMode.OverwriteCurrentValues, _me.ChildEntities); 

est là de toute façon que je peux fermer et rouvrir le LINQPad DataContext (je suis abonné premium)

Répondre

2

Cette ressemble à un bug dans LINQ-to-SQL.

Vous pouvez ré-initialiser le LINQPad DataContext par instancier explicitement:

while(1 = 1) 
{  
    var freshDC = new TypedDataContext(); 
    var me = freshDC.MyEntities.FirstOrDefault(); 
    ... 
} 
+0

Joe Thankyou Albahari. Aimez votre produit !!!! –