我可以从linq-to-sql DataContext访问InsertOnSubmit'd记录列表吗?

Blo*_*ard 4 c# linq linq-to-sql

我有一些代码,我使用Linq-To-SQL DataContext来添加和修改表中的记录.

我遇到了一种情况,我通过InsertOnSubmit添加了一些记录,然后我想修改一条记录..但是这条记录可能已经在表中,或者它可能是我插入的那条记录之一.所以这:

db.MyTable.Single(t => t.Id == WhichId).Name="foobar";
Run Code Online (Sandbox Code Playgroud)

可能不起作用,因为我可能实际上没有插入具有Id的记录WhichId.

我真的不想,SubmitChanges()直到我完成了我要做的一切.

DataContext必须保留要在SubmitChanges()上插入的记录列表 - 我可以访问该列表吗?我在考虑这样的事情:

(db.MyTable.SingleOrDefault(t => t.Id == WhichId) ??
 db.[list of records to be inserted].Single(t => t.Id == WhichId)
).Name="foobar";
Run Code Online (Sandbox Code Playgroud)

所以问题是,这些方括号是否可以放在哪里?