c# - 已插入但尚未提交的记录的查询上下文

标签 c# .net linq oracle

我搜索并搜索了 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/

相关文章:

c# - 空体构造函数中的契约(Contract)前提条件

c# - 选择要列出Linq的元素

c# - 查找名称为LINQ的最低价格返回的产品

c# - 使用 lambda 表达式计算两个带有索引的列表的交集

c# - 如何使用c#打开受密码保护的pdf

c# - 如何将 ppt 文件保存到 WPF 数据库并检索它们进行编辑?

.net - Python 对象与 .NET 对象的比较

.net - 我应该如何在 VB.NET 中进行转换?

c# - WCF 调用时出现内存不足异常

javascript - 将 c# 日期解析为 javascript 日期如何与 ')' 一起使用?