我搜索并搜索了 stackoverflow 和 www,但没有找到这个问题的答案。
我正在遍历许多记录,在某些情况下我将新记录插入表 A。然后我再次在另一个数据源(不能与第一个数据源合并)上循环,如果是在这种情况下,我想在同一个表A中插入新记录。我只想在流程结束时提交记录,但如果我只是插入它们,它会给出一个主键违规错误。
注意:linq 不管理主键。可能是因为我对 linq 有点菜鸟,真的不知道如何让 linq 与 Oracle 序列一起工作。
我的问题是如何检查我插入的记录的现有上下文。这就是我正在做的。
foreach(var rec in recordList1)
{
...
dataContext.InsertOnSubmit(obj);
}
foreach(var rec in recordList2)
{
if ( ! [check context here for existing record] )
{
...
dataContext.InsertOnSubmit(obj);
}
}
dataContext.SubmitChanges();
我试过以不同的方式查询上下文,但它只会返回提交的值。
提前致谢! 最好的问候。
最佳答案
要访问数据上下文中插入、更新、删除的对象,您需要调用 GetChangeSet。
var changed = dataContext.GetChangeSet();
var inserted = changed.Inserts;
var updated = changed.Updates;
var deleted = changed.Deletes;
关于c# - 已插入但尚未提交的记录的查询上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7878921/