带有按时间戳字段过滤的NHibernate查询

时间:2013-02-25 22:44:06

标签: c# .net sql nhibernate

我有一个表格,其中包含Timestmap类型的版本控制字段。现在我正在尝试使用此字段进行搜索,但是当我以下一种方式传递参数时:

query.SetParameter("TimeStamp", lastTick, NHibernateUtil.Timestamp);

它将它作为DateTime传递给sql查询。还尝试了NHibernateUtil.Binary,但是nhibernate将它作为varbinary传递。

1 个答案:

答案 0 :(得分:1)

NHibernate TimestampType指定:

  

这几乎与DateTime完全相同,只是可以使用它   在版本列中,将其存储到数据库支持的精度,   如果值为null,则默认为DateTime.Now的值。

此类型不适用于MS SQL类型TIMESTAMP。实际上,不推荐使用该列类型:

  

不推荐使用时间戳语法。将在Microsoft SQL Server的未来版本中删除此功能。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。

     

rowversion (Transact-SQL)

您应该使用NHibernateUtil.BinaryNHibernateUtil.BinaryBlob