Получить идентификатор с помощью LINQ to SQL - PullRequest
8 голосов
/ 16 декабря 2008

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

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

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

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

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

Ответы [ 3 ]

12 голосов
/ 16 декабря 2008

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

5 голосов
/ 16 декабря 2008

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

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

затем получите Id с:

int ID = doc.docId;
2 голосов
/ 16 декабря 2008

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

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

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