Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不是';t LINQ-to-SQL结果I';我正在更新保存?_C#_Linq_Linq To Sql - Fatal编程技术网

C# 为什么不是';t LINQ-to-SQL结果I';我正在更新保存?

C# 为什么不是';t LINQ-to-SQL结果I';我正在更新保存?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我正在尝试更新LINQ到SQL查询的结果,如下所示: foreach (var selectedItem in lvFolders.SelectedItems) { Folder folder = selectedItem as Folder; folder.IsNeeded = "N"; var dbResult = from r in _dataContext.AllDFSDatas where

我正在尝试更新LINQ到SQL查询的结果,如下所示:

foreach (var selectedItem in lvFolders.SelectedItems)
{
        Folder folder = selectedItem as Folder;
        folder.IsNeeded = "N";

        var dbResult = from r in _dataContext.AllDFSDatas
                       where ((r.FolderPath == folder.FolderPath) && (r.COO == cboCOO.SelectedItem.ToString()))
                       select r;

        foreach (var result in dbResult)
        {
            result.StillNeeded = "N";
        }

        try
        {
            var test = _dataContext.GetChangeSet();
            _dataContext.SubmitChanges();
        }
        catch
        {
            System.Windows.MessageBox.Show("Error saving data.  Please contact support",
                "Survey Error.", MessageBoxButton.OK, MessageBoxImage.Error);
        }
}
不幸的是,在foreach中更新result.StillNeeded后,dbResult仍然显示旧值。我在MSDN上看到了非常类似的代码,以及看起来工作正常的堆栈溢出

有没有想过为什么会发生这种情况


谢谢

找到了答案。我(非常棒)的DBA使用autoincrement创建了一个ID列,但没有将其设置为主键。完成此操作后,在DBML设计器中设置主键,最后将“AutoSync”设置为“OnInsert”,我就能够正确地更新数据库了。

我不确定dataContext的定义在哪里?\u dataContext是在WPF表单的构造函数中初始化的私有变量,简单地说就是_dataContext=new DFSDataContext();。如果可以,您应该迁移到实体框架,它比Linq到Sql要好得多