Database db.SubmitChanges()未在Windows phone 8中更新数据库

Database db.SubmitChanges()未在Windows phone 8中更新数据库,database,windows-phone-8,Database,Windows Phone 8,我的问题可能类似于谷歌搜索中的许多问题,但我有一些具体的疑问。我编写了这样的代码,其中db是数据库,Items是将filename作为一个属性的表 var query = from fs in dB.Items where fs.FilePath.Trim() == strOldpath.ToString() select fs; foreach (var fs in query)

我的问题可能类似于谷歌搜索中的许多问题,但我有一些具体的疑问。我编写了这样的代码,其中db是数据库,Items是将filename作为一个属性的表

var query = from fs in dB.Items
              where fs.FilePath.Trim() == strOldpath.ToString()
              select fs;

                 foreach (var fs in query)
                 {
                    fs.FileName = txtrename.Text.ToString();                
                 }

                 try
                 {
                    dB.SubmitChanges();
                 }
                 catch (Exception e)
                 {

                 }
这段代码运行正常,但在调试之后,我停止了模拟器,并在命令提示符下运行

ISETool.exe ts xd 19xxxx-b6f2-474b-a747-6AXXXXXX E:\practice\WinPhone\PhoneApp3\


它在特定文件夹中创建*.sdf,我可以在服务器资源管理器中打开它。但我可以看到,它显示的不是更新后的文件名,而是旧文件名。代码运行良好。为什么文件名没有更新,有什么帮助吗?我还为表设置了主键。

您在尝试更新只读查询结果时遇到了一个已知问题:


如果您在设备上以代码形式读出数据会怎么样?在设备中,它工作正常,但出于调试目的,我们需要向其他人显示。但是数据库并没有更新和显示旧的数据库,尽管提交更改是有效的。你要么自相矛盾,要么我真的不明白。如果SubmitChanges不更新数据库,您如何确认它是否有效?为了让它工作,它必须更新数据库,这就是它所做的。@Mattlecy很抱歉地说,但今天我发现提交更改不起作用。它没有更新数据库。我检查了数据库,它仍然是旧值。我知道db.SubmitChanges不工作,但没有引发任何异常,因为ideaDB.ObjectTrackingEnabled=true总是。即使我想把它改成假的,它也不起作用。在查询返回结果后,不能修改数据上下文选项。所以我能猜到的是,同一个数据库正在内部某个地方使用。但在我的应用程序中,我一次只使用一次。谢谢你的链接,即使这也是关于bug的,但是有什么方法可以做到吗?有什么解决办法吗?