4

こんにちは、LINQPadを使用して次の状況に対処するのに苦労しています

While(1 = 1) 
{ 

    MyEntity _me = MyEntities.FirstOrDefault(); 

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

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

MyEntity (および ChildEntities コレクション) は、自動的に作成された LINQ to SQL クラスです。基礎となるデータベースの行は、このスクリプトとは無関係に変更される可能性があるため、While ループの反復ごとに ChildEntities コレクションをデータベースから更新したいと考えています。現在はありません。

これは動作しません

this.Refresh(RefreshMode.OverwriteCurrentValues, _me);

もしない

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

とにかく、LINQPad DataContext を閉じて再度開くことができますか (私はプレミアム サブスクライバーです)

4

1 に答える 1

3

これは LINQ-to-SQL のバグのようです。

明示的にインスタンス化することで、LINQPad DataContext を再初期化できます。

while(1 = 1) 
{     
    var freshDC = new TypedDataContext();
    var me = freshDC.MyEntities.FirstOrDefault(); 
    ...
}
于 2013-01-17T01:56:55.070 に答える