可能重复:
Why does select SCOPE_IDENTITY() return a decimal instead of an integer?
我正在使用以下代码来确定我的列
上的最后插入IDvar 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 :(得分:3)
lastInsertedId
将以[{1}}的形式返回,您必须将其转换为decimal
并将其传递给Int
方法
session.Load
答案 1 :(得分:0)
你可以写:
SELECT Cast(IDENT_CURRENT('Core.Clients') As Int)