2012-08-06 3 views
2

Мне нужно знать, как я могу узнать, что является последним вставленным id в базе данных SQL Server для данной таблицы?last_insert_id? C#, SQL Server и NHibernate

Я использую int identity не руководство, и если это имеет значение NHibernate как мой ORM.

Благодаря

ответ

5

Вы могли бы попробовать что-то вроде этого:

var sql = "SELECT IDENT_CURRENT('TableName')"; 
var query = session.CreateSQLQuery(sql); 
var result = query.UniqueResult(); 

Это вернет последнее значение идентичности, сгенерированное для данной таблицы.

4

В зависимости от того, как формируются ваши идентификаторы, вы должны быть в состоянии вернуть его прямо из ISession.Save():

int insertedID = (int)session.Save(entity); 
+0

благодарит за ответ. Я успешно сгенерировал id для сохранения объектов, это не проблема. На самом деле, мне нужно восстановить последний вставленный идентификатор не в текущий nhib. сессия. – Grunf

Смежные вопросы