0

使用带有时间戳的 linq-to-sql 作为复合主键的一部分时出现此错误:

“服务器无法生成‘时间戳’类型的主键列。”

我猜这可能是因为时间戳只是一个行版本,因此它可能必须在插入之后创建?或者...

4

2 回答 2

5

不要使用时间戳数据类型!!

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

时间戳 (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776(SQL.90).aspx rowversion (Transact-SQL) http://msdn.microsoft.com/en-us/库/ms182776.aspx

此外,如果它主要设计用于更改、跟踪版本,为什么要让它成为主键的一部分?更改主键会导致很多问题!

如果您需要系统生成的主键值,请使用identityguid

身份(属性) http://msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
GUID 唯一标识符 http://msdn.microsoft.com/en-us/library/aa260656(v= SQL.80).aspx

于 2010-04-12T18:27:56.323 回答
0

你可以解决它..设置

  • 自动生成值为 True
  • 自动同步到 OnInsert

...当然,除非你已经拥有

于 2010-04-12T18:47:49.037 回答