1

出于性能原因,我们已将应用程序从使用 EntityFramework 4.2 和其他几个商业 ORM 产品转移到 ADO.NET,它确实证明了目的。

但是我们遇到了一个问题,那就是数据类型时间戳。

在 EF 中,我们在每个表中放置一个带有时间戳数据类型的列,并且我们允许 EF 使用该列进行版本控制,

现在,我们将 ADO.Net 与数据集/数据表一起使用,我不确定如何为添加到数据表的每个新行初始化时间戳列的新值。这是错误之一。列“RECVERSION”被限制为唯一。值“System.Byte[]”已经存在。我们可以禁用约束,但我们希望对行版本有这个约束 问题:我们如何在断开连接的数据集/数据表环境中为时间戳自动初始化新值?谢谢

4

1 回答 1

2

类型列TIMESTAMP(或ROWVERSION自 SQL Server 2008 起)将始终由 SQL Server 自动处理。

并且不能也不能在其中插入任何值。别管它!您应该只选择它来检测在您阅读它的时间和您尝试更新它的那一刻之间行的更改时间。

不要尝试插入或设置此值!INSERT只需将其从您的任何 SQL或UPDATE语句中排除。SQL Server 为您完成所有工作。

于 2011-12-12T06:21:16.467 回答