Получить Id с помощью LINQ to SQL

Как я могу получить ID записи после сохранения его в базе данных. Я имею в виду на самом деле что-то подобное.

У меня есть класс документа (который является сущностью tho из базы данных), и я создаю экземпляр, как

Document doc = new Document() {title="Math",name="Important"};
dataContext.Documents.InsertOnSubmit(doc);
dataContext.SubmitChanges();

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

спасибо заранее всем :)

3 ответов


после запуска .SubmitChanges затем doc.docId должен быть заполнен Id, который был создан в базе данных.


Как все говорили, вы должны быть в состоянии сделать что-то вроде этого:

Document doc = new Document() {title="Math",name="Important"};
dataContext.Documents.InsertOnSubmit(doc);
dataContext.SubmitChanges();

затем получите идентификатор с помощью:

int ID = doc.docId;

Linq to SQL по умолчанию изменяет отслеживание. Поэтому, как только ваша строка вставлена, ваш объект обновляется и добавляется в datacontext. В коллекции документов появится новая допустимая строка.

этой сообщение в блоге Чарли Калверта имеет некоторые хорошие образцы Linq для загрузки. Я храню его только для справки.