C# 无法理解将LINQ刷新为SQL DataContext的Refresh()方法。

C# 无法理解将LINQ刷新为SQL DataContext的Refresh()方法。,c#,linq-to-sql,C#,Linq To Sql,我已经在线查看了其他代码,但无法理解刷新linq to sql数据上下文的refresh()方法的参数 我正在删除表B的数据,这样我就可以删除表A的数据。然后我想更新我的Gridview,以便它现在显示删除了所需记录的表B的数据 public static void DeleteCategory(int id) { var result = from a in adb.Artifacts //adb is my data context v

我已经在线查看了其他代码,但无法理解刷新linq to sql数据上下文的refresh()方法的参数

我正在删除表B的数据,这样我就可以删除表A的数据。然后我想更新我的Gridview,以便它现在显示删除了所需记录的表B的数据

public static void DeleteCategory(int id)
    {
        var result = from a in adb.Artifacts                 //adb is my data context visible to every code.
                     where a.CatgId == id
                     select new { artid = a.ArtId};

        var count = result.Count();
        int counter = 0;




            if (count > 0)
            {
                foreach (var r in result)
                {

                    MyArtifact.DeleteByKey(r.artid);
                    count--;
                    counter = 1;
                }
            }
            if (counter==0)
            {
                MyCategories.DeleteByKey(id);        
            }
//我应该在这里使用refresh()方法,但我无法理解参数RefreshMode和Entity!!!谁能给我解释一下这两个 }


谢谢

我认为您不需要使用刷新,而是需要更改删除方式。如果使用上下文进行删除,则不需要对其进行引用


我会改变实体映射级联设置,当你删除一个类别时,它会自动删除工件

嘿,蒂姆,我已经查看了那个博客!但我无法确定应用程序的refresh()参数应该使用什么。它表示实体和刷新模式。ThanksI已尝试编写adb.Refresh(RefreshMode.OverwriteCurrentValues,工件);但是这样做,我得到了一个错误'AdlibCoreModel.Artifact'是一个'type',但像'variable'一样使用。嘿,Andy,我正在使用deleteoSubmit()使用LINQ删除它…我了解映射级联设置..但我想知道刷新()因为我将在将来更新或插入时使用…是的,我可以…我想,但我没有得到它的第二个参数…如果你能阅读我的上述评论,它会显示我一个错误…微软的例子是context.Refresh(RefreshMode.ClientWins,orders);我会尝试context.Refresh(RefreshMode.ClientWins,result);嗨,安迪,你的代码对这项工作没有帮助..每次我查询时创建一个数据上下文对象可以吗??这会不会是一个问题,因为我的数据库将承载大约50-60K条记录。。。??