我有带有Timestmap类型的版本控制字段的表。现在,我试图通过该字段进行搜索查询,但是当我以另一种方式传递参数时:
query.SetParameter("TimeStamp", lastTick, NHibernateUtil.Timestamp);
它将它作为DateTime传递给sql查询。还尝试了NHibernateUtil.Binary,但是nhibernate将其作为varbinary传递。
NHibernate TimestampType指定:
该类型与DateTime几乎完全相同,但可以在version列中使用,将其存储到数据库支持的精度,并且默认为DateTime.Now值(如果该值为null)。
此类型根本不能与MS SQL类型TIMESTAMP一起使用。实际上,该列类型已被弃用:
不建议使用时间戳语法。将来的Microsoft SQL Server版本将删除此功能。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 行版本(Transact-SQL)
不建议使用时间戳语法。将来的Microsoft SQL Server版本将删除此功能。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
行版本(Transact-SQL)
您应该使用NHibernateUtil.Binary或NHibernateUtil.BinaryBlob。
NHibernateUtil.Binary
NHibernateUtil.BinaryBlob