C# 已插入但尚未提交记录的查询上下文
我搜索了stackoverflow和www,但没有找到这个问题的答案 我循环了许多记录,在某些情况下,我将新记录插入表a。然后我将在另一个数据源上再次循环(不能与第一个数据源合并),如果是这样,我希望将新记录插入同一个表a。我只希望在流程结束时提交记录,但如果我只是插入它们,它会给出主键冲突错误 注意:linq不管理主键。可能是因为我是linq的新手,不知道如何让linq使用Oracle序列 我的问题是如何检查已插入记录的现有上下文。这就是我正在做的C# 已插入但尚未提交记录的查询上下文,c#,.net,linq,oracle,C#,.net,Linq,Oracle,我搜索了stackoverflow和www,但没有找到这个问题的答案 我循环了许多记录,在某些情况下,我将新记录插入表a。然后我将在另一个数据源上再次循环(不能与第一个数据源合并),如果是这样,我希望将新记录插入同一个表a。我只希望在流程结束时提交记录,但如果我只是插入它们,它会给出主键冲突错误 注意:linq不管理主键。可能是因为我是linq的新手,不知道如何让linq使用Oracle序列 我的问题是如何检查已插入记录的现有上下文。这就是我正在做的 foreach(var rec in rec
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();
我尝试过以不同的方式查询上下文,但它只返回提交的值
提前谢谢!
致以最诚挚的问候。要访问在datacontext中插入、更新、删除的对象,您需要调用GetChangeSet
var changed = dataContext.GetChangeSet();
var inserted = changed.Inserts;
var updated = changed.Updates;
var deleted = changed.Deletes;
我不确定我是否完全理解这个问题,但使用TransactionScope是您的解决方案吗?不,贾斯汀的答案正是我想要的。无论如何,谢谢你。