Контекст запроса для вставленных, но еще не принятых записей - PullRequest
2 голосов
/ 24 октября 2011

Я искал и искал 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();

Я пытался запрашивать контекст по-разному, но он будет возвращать только зафиксированные значения.

Заранее спасибо! С наилучшими пожеланиями.

1 Ответ

2 голосов
/ 24 октября 2011

Чтобы получить доступ к объектам, вставленным, обновленным, удаленным в текстовом тексте данных, необходимо вызвать GetChangeSet.

var changed = dataContext.GetChangeSet();
var inserted = changed.Inserts;
var updated = changed.Updates;
var deleted = changed.Deletes;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...