时间戳作为复合主键的一部分?
当使用带有时间戳的 linq-to-sql 作为复合主键的一部分时,我收到此错误:
“服务器无法生成‘时间戳’类型的主键列。”
我猜这可能是因为时间戳只是一个行版本,因此也许它必须在插入后创建?或者...
I get this error when using linq-to-sql with timestamp as part of a composite primary key:
"The primary key column of type 'Timestamp' cannot be generated by the server."
I'm guessing this may be due to the fact timestamp is just a row version thus perhaps it must be created after the insert? Or...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要使用时间戳数据类型!!
时间戳 (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776(SQL.90).aspx
rowversion (Transact-SQL) http://msdn .microsoft.com/en-us/library/ms182776.aspx
另外,如果它主要是为了更改、跟踪版本而设计的,为什么要使其成为主键的一部分呢?更改主键可能会导致很多问题!
如果您需要系统生成的主键值,请使用身份或guid。
IDENTITY(属性) http: //msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
GUID 唯一标识符 http: //msdn.microsoft.com/en-us/library/aa260656(v=SQL.80).aspx
don't use the timestamp data type!!
timestamp (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776(SQL.90).aspx
rowversion (Transact-SQL) http://msdn.microsoft.com/en-us/library/ms182776.aspx
Also, if it primarily designed to change, to keep track of versions, why make it a part of a primary key? changing a primary key can cause many problems!
If you need a system generated value for a primary key, use an identity or guid.
IDENTITY (Property) http://msdn.microsoft.com/en-us/library/aa933196(SQL.80).aspx
GUID uniqueidentifier http://msdn.microsoft.com/en-us/library/aa260656(v=SQL.80).aspx
您可以解决这个问题..将
...当然,除非您已经这样做了
You can work around it.. set
...unless you already have of course