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