刷新 LINQPad 中的 DataContext

Chr*_*man 5 .net c# datacontext linqpad linq-to-sql

您好,我正在努力使用 LINQPad 处理以下情况

While(1 = 1) 
{ 

    MyEntity _me = MyEntities.FirstOrDefault(); 

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

    System.Threading.Thread.Sleep(100000); 
}
Run Code Online (Sandbox Code Playgroud)

其中 MyEntity(和 ChildEntities 集合)是自动创建的 LINQ to SQL 类。底层数据库中的行可能会独立于该脚本而更改,我希望在 While 循环的每次迭代中从数据库刷新 ChildEntities 集合。目前还没有。

这不起作用

this.Refresh(RefreshMode.OverwriteCurrentValues, _me);
Run Code Online (Sandbox Code Playgroud)

也不

this.Refresh(RefreshMode.OverwriteCurrentValues, _me.ChildEntities);
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以关闭并重新打开 LINQPad DataContext(我是高级订阅者)

Joe*_*ari 4

这看起来像是 LINQ-to-SQL 中的一个错误。

您可以通过显式实例化 LINQPad DataContext 来重新初始化它:

while(1 = 1) 
{     
    var freshDC = new TypedDataContext();
    var me = freshDC.MyEntities.FirstOrDefault(); 
    ...
}
Run Code Online (Sandbox Code Playgroud)