预期:System.Int32,得到System.Decimal

时间:2012-08-07 11:29:21

标签: c# nhibernate

  

可能重复:
  Why does select SCOPE_IDENTITY() return a decimal instead of an integer?

我正在使用以下代码来确定我的列

上的最后插入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

我怎样才能克服这些?感谢

2 个答案:

答案 0 :(得分:3)

lastInsertedId将以[{1}}的形式返回,您必须将其转换为decimal并将其传递给Int方法

session.Load

答案 1 :(得分:0)

你可以写:

SELECT Cast(IDENT_CURRENT('Core.Clients') As Int)