如何使SubmitChanges仅提交特定更改而不是之前的所有更改?

时间:2010-02-01 00:46:04

标签: c# asp.net linq-to-sql submitchanges

ASP.NET linq SubmitChanges方法提交自上次调用以来所有先前数据库修改的更改。

我有一个案例,我做了类似以下的事情:

ClassX x = new Abc.Linq.ClassX();
DataContext.InsertOnSubmit(x);

ClassY y = new Abc.Linq.ClassXY();
DataContext.InsertOnSubmit(y);

DataContext.SubmitChanges();//x and y are committed to the database

我想在上面的行中插入y而不是X. 然后我想在以后的某个时间再次调用SubmitChanges()。 我必须按照显示的顺序执行代码。

这可能吗? 或者我应该调用SubmitChanges()以外的东西吗?

1 个答案:

答案 0 :(得分:4)

我会为此使用单独的DataContexts。 DataContext只是数据访问的包装器和一组挂起的更改。它不支持其更改列表的部分提交。 InsertOnSubmit做了它所说的 - 在你真正想要提交之前,你需要调用它吗?也许如果你详细说明将你锁定在执行顺序中的问题,我们可以提供更好的解决方案。