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

本文关键字:System 得到 Decimal Int32 预期 | 更新日期: 2024-10-24 23:37:10

可能的重复项:
为什么选择 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

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

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

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

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

你可以这样写:

SELECT Cast(IDENT_CURRENT('Core.Clients') As Int)
相关文章: