Как вернуть идентификатор записи в транзакции вставки, используя Linq to SQL - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть следующий код вставки LINQ to SQL:

public static int InsertFileToQueue(FileInfo file)
{
    int? recordID = null; 

    IpsDBDataContext db = new IpsDBDataContext();

    IpsJobFileQueue record = new IpsJobFileQueue();
    record.FileName = file.Name;
    record.FilePath = file.FullName;
    record.PickupDate = file.CreationTime;

    record.StartTime = null;
    record.EndTime = null;
    record.ProcessCode = null;

    db.SubmitChanges();

    return recordID;
}

Где-то после db.SubmitChanges() Я знаю, что мне нужно добавить код для получения идентификатора в записи, которую я только что вставил. Вещи, на которые я не могу положиться, это имя файла (так как многие из этих файлов будут называться одинаково) и, конечно же, не всегда.

Так что я запрашиваю, чтобы получить идентификатор?

1 Ответ

4 голосов
/ 09 февраля 2012

Сначала вам нужно вызвать метод Table .InsertOnSubmit (TEntity) , передав экземпляр IpsJobFileQueue для сохранения. Затем после завершения метода DataContext.SubmitChanges () можно получить назначенное значение первичного ключа из соответствующего свойства объекта IpsJobFileQueue.

var db = new IpsDBDataContext();
var record = new IpsJobFileQueue();
db.IpsJobFileQueues.InsertOnSubmit(record);
db.SubmitChanges();

return record.Id; // Contains the assigned primary key value

В этом примере IpsJobFileQueue.Id - это свойство, которое сопоставлено со столбцом первичного ключа соответствующей таблицы базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...