Linq to SQL - Как найти значение столбца IDENTITY после InsertOnSubmit () - PullRequest
18 голосов
/ 30 апреля 2009

Я использую LINQ to SQL для вставки простых данных в таблицу БЕЗ stored procedure. В таблице есть столбец первичного ключа, который задается как столбец IDENTITY как в SQL Server, так и в моем DBML.

Сначала я вызываю InsertOnSubmit(); с данными для одной строки, а затем я вызываю SubmitChanges();, чтобы зафиксировать строку в БД. Но я думаю, что должен быть простой способ затем извлечь значение столбца IDENTITY для новой вставленной строки. Я не хочу предоставлять значение столбца IDENTITY в БД, я хочу, чтобы оно сгенерировало его для меня.

Как это лучше всего обрабатывается?

1 Ответ

28 голосов
/ 30 апреля 2009

Вот простой фрагмент кода

            Dim odb As New DataClassesDataContext
            Dim tst As New test
            tst.name = "abcd"
            odb.tests.InsertOnSubmit(tst)
            odb.SubmitChanges()
            Response.Write("id:" + tst.id.ToString)

таким образом, в основном объект, который вы использовали в InsertOnSubmit, получит поле идентификатора, заполненное после создания записи в базе данных

...