我有一个表格,其中包含Timestmap类型的版本控制字段。现在我正在尝试使用此字段进行搜索,但是当我以下一种方式传递参数时:
query.SetParameter("TimeStamp", lastTick, NHibernateUtil.Timestamp);
它将它作为DateTime传递给sql查询。还尝试了NHibernateUtil.Binary,但是nhibernate将它作为varbinary传递。
答案 0 :(得分:1)
NHibernate TimestampType指定:
这几乎与DateTime完全相同,只是可以使用它 在版本列中,将其存储到数据库支持的精度, 如果值为null,则默认为DateTime.Now的值。
此类型不适用于MS SQL类型TIMESTAMP。实际上,不推荐使用该列类型:
不推荐使用时间戳语法。将在Microsoft SQL Server的未来版本中删除此功能。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
您应该使用NHibernateUtil.Binary
或NHibernateUtil.BinaryBlob
。