0

我有带有 Timestmap 类型的版本控制字段的表。现在我正在尝试通过此字段搜索进行查询,但是当我以下一种方式传递参数时:

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

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

4

1 回答 1

1

NHibernate TimestampType 指定:

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

此类型根本不适用于 MS SQL 类型 TIMESTAMP。事实上,该列类型已被弃用:

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

行版本 (Transact-SQL)

您应该使用NHibernateUtil.BinaryNHibernateUtil.BinaryBlob

于 2013-02-26T07:48:15.077 回答