Как получить vaule столбца идентичности после вставки с помощью LINQ - PullRequest
3 голосов
/ 20 марта 2009

Может ли кто-нибудь из вас показать мне, как выполнить следующие задачи?

// Prepare object to be saved
// Note that MasterTable has MasterTableId as a Primary Key and it is an indentity column

MasterTable masterTable = new MasterTable();
masterTable.Column1 = "Column 1 Value";
masterTable.Column2 = 111;

// Instantiate DataContext
DataContext myDataContext = new DataContext("<<ConnectionStrin>>");

// Save the record
myDataContext.MasterTables.InsertOnSubmit(masterTable);
myDataContext.SubmitChanges();

// ?QUESTION?
// Now I need to retrieve the value of MasterTableId for the record just inserted above.

С уважением

Ответы [ 2 ]

5 голосов
/ 20 марта 2009

Значение идентификатора присваивается вставленному объекту сразу после вызова SubmitChanges.

Просто доступ:

masterTable.MasterTableId
0 голосов
/ 13 апреля 2010

Я знаю, что LINQ to SQL автоматически переносит все изменения в транзакции базы данных. Поэтому, если я хотел использовать возвращенный идентификатор для другой вставки (моя таблица пользователей имеет адрес ID, поэтому я добавляю новую запись адреса, а затем добавляю новую запись пользователя с этим идентификатором), и возникла проблема при вставке пользователя, вставка адреса не откатился бы. Стоит ли обернуть оба SubmitChanges в другую транзакцию?

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