代码之家  ›  专栏  ›  技术社区  ›  Garcia Julien

取消dataContext=Linq中的更新

  •  0
  • Garcia Julien  · 技术社区  · 15 年前

    我想知道是否可以只丢弃DataContext中一个表的一条记录的更改。

    我使用DataBind将控件绑定到窗体上。我一次修改一个记录。修改后,用户必须点击保存按钮进行验证。但他可以点击取消。我希望取消按钮放弃用户所做的所有更改。有可能吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Ben    15 年前

    使之成为一个愚蠢的用户界面。也就是说,它处理所有的数据输入,但不保存任何数据。因此,如果您使用的是从窗体调用的对话框,请

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

    这样,如果对话框未返回OK(即,如果单击Cancel,则DataContext不会将结果BAK持久化到数据库中。

    这也使得代码可以重用。

        2
  •  2
  •   Peter Willis    15 年前

    如果不在DataContext上调用.SubmitChanges,则更改将不会应用于数据库。

    在考虑实体的更改跟踪时,这都是关于DataContext的。

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

        3
  •  0
  •   Garcia Julien    15 年前

    谢谢你的回复, 我找到了一个解决方案,单击“取消”时重新加载数据上下文。它在工作,而且速度更快。谢谢