2010-04-01 62 views
0

我想知道是否有可能放弃datacontext中只有一个表的一个记录的变化。取消更新datacontext = LInq

我使用数据绑定绑定表单上的控件。我一次修改一条记录。在修改之后,用户必须点击保存按钮来验证。但他可以取消。我希望取消按钮放弃用户所做的所有更改。可能吗?

回答

0

感谢您的答复, 我找到了一个解决方案,我重装的DataContext我击球的时候取消。它的工作和它的速度更快。由于

2

如果不呼吁的DataContext .SubmitChanges则更改将不会应用到数据库中。

这是关于DataContext在考虑实体变更跟踪时的一切。

如果您想清除所有更改,请关闭datacontext并打开一个新的更改。

+0

是的,但日表情符号不是D中的插入符号B.问题是,当我点击取消按钮时,所有的更改都会被丢弃。 – 2010-04-03 04:05:06

+0

我知道可以通过使用DataContext.GetChangeSet检索ChangeSet,但我不确定是否可以修改删除,更新或插入。在你的情况下,我会考虑在linq实体之外应用任何更改的选项,并且只有在实际需要做出更改时才应用它们。 – SteadyEddi 2010-04-03 09:23:29

2

让它成为你的对话是一个愚蠢的用户界面。即,它处理所有的数据输入,但不保留任何数据。所以,如果你使用的是由一种叫做对话 - 有一些像

If (myDlg.ShowDialog() = DialogResult.Ok) 
    MyDataContext.SubmitChanges() 
End If 

这样,如果您的对话框不返回OK(即,如果他们点击取消,在DataContext不会坚持的结果李明博到数据库。

这使得可重用的代码。

+0

嗨这是一个很好的方式,我不知道,但我的数据不在对话框中,但在用户控制。那谢谢啦 – 2010-04-03 04:03:30