2012-08-07 50 views
1

可能重複:
Why does select SCOPE_IDENTITY() return a decimal instead of an integer?預計:System.Int32,得到了System.Decimal

我用下面的代碼,以確定我的專欄最後插入的ID

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

但是,當我嘗試使用這些ID值

photo.Property = session.Load<Domain.Property>(lastInsertedId); 

我收到以下錯誤消息 提供了錯誤類型的ID。預期:System.Int32,得到System.Decimal

我該如何克服這些?由於

+0

請嘗試session.Load < Domain.Property>(System.Convert.ToInt32(lastInsertedId)); – HatSoft 2012-08-07 11:33:26

+0

是有意義的,請張貼這個作爲你的答案。 – panjo 2012-08-07 11:36:28

+0

看看這個http://stackoverflow.com/a/2601878/570150 – V4Vendetta 2012-08-07 11:39:26

回答

3

lastInsertedId是越來越返回decimal你必須把它轉換成以Int並把它傳遞給session.Load方法

photo.Property = session.Load<Domain.Property>(System.Convert.ToInt32(lastInsertedId)); 
0

你可以寫:

SELECT Cast(IDENT_CURRENT('Core.Clients') As Int) 
相關問題