如何清除 LinqToSql 中的更改?

发布于 2024-07-28 06:43:24 字数 258 浏览 5 评论 0原文

我的 WPF 应用程序中有一个组合框,它与视图模型中的对象列表进行数据绑定。 当用户对所选对象进行更改,然后在保存之前选择另一个项目时,我需要清除所做的更改。

我以为我可以使用 dataContext.GetChangeSet().Updates.Clear() 但由于某种原因该集合是只读的。

我还尝试使用 dataContext.Refresh 但这不起作用,因为数据库中不存在该对象,我从 SP 手动创建了它。

请帮忙。 谢谢。

I have a combobox in my WPF app that is databound to my list of objects in my View Model. When the user makes changes to the selected object and then selects another item before saving, I need to clear the changes made.

I thought I could use dataContext.GetChangeSet().Updates.Clear() but for some reason the collection is read-only.

I've also tried to use dataContext.Refresh but this doesn't work either as the object doesn't exist in the database, I created it manually from an SP.

Please help. thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

铃予 2024-08-04 06:47:40

您最好的选择可能是重新查询到单独的数据上下文。 您可以通过使用DeleteOnSubmit(以及相反的操作)来取消插入(从变更集中),但我自己不愿意这样做。

Your best bet is probably to re-query into a separate data-context. You can negate an insert (from the change-set) by using DeleteOnSubmit (and the reverse), but I'd rather not, myself.

冰火雁神 2024-08-04 06:46:40

除了使用 Marc 的方法(使用DeleteOnSubmit(或DeleteAllOnSubmit)删除插入内容)之外,以下操作实际上也会撤消任何更新:

// clears any updates.  
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);   

As well as using Marc's approach using DeleteOnSubmit (or DeleteAllOnSubmit) to remove the inserts, the following will actually undo any updates aswell:

// clears any updates.  
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);   
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文