1

可能重复:
为什么 select SCOPE_IDENTITY() 返回小数而不是整数?

我正在使用以下代码来确定我的列中最后插入的 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

我该如何克服这些?谢谢

4

2 回答 2

3

lastInsertedId正在返回,因为decimal您必须将其转换为Int并将其传递给session.Load方法

photo.Property = session.Load<Domain.Property>(System.Convert.ToInt32(lastInsertedId)); 
于 2012-08-07T11:41:36.350 回答
0

你可以写:

SELECT Cast(IDENT_CURRENT('Core.Clients') As Int)
于 2012-08-07T11:39:23.840 回答