last_insert_id? C#,SQL Server和NHibernate

问题描述:

我需要知道如何知道什么是SQL Server数据库中最后一个给定的表插入ID?last_insert_id? C#,SQL Server和NHibernate

我使用的是int identity而不是GUID,如果是NHibernate作为我的ORM。

感谢

你可以尝试这样的事:

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

这将返回为给定表生成的最后一个标识值。

根据您的ID是如何产生的,你应该能够从ISession.Save()直接返回它:

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

感谢您的回复。我已经成功地生成了ID的保存实体,这不是问题。其实,我需要检索最后插入的ID不在当前的nhib。会话。 – Grunf 2012-08-06 11:38:24