当使用带有时间戳的linq-to-sql作为复合主键的一部分时,我收到此错误:
“服务器无法生成'Timestamp'类型的主键列。”
我猜这可能是因为时间戳只是一个行版本,因此它可能必须在插入后创建?还是......
答案 0 :(得分:5)
请勿使用时间戳数据类型!!
不推荐使用时间戳语法。 此功能将在a中删除 Microsoft SQL的未来版本 服务器。避免使用此功能 新的发展工作,并计划 修改当前使用的应用程序 这个功能。
时间戳(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 uniqueidentifier http://msdn.microsoft.com/en-us/library/aa260656(v=SQL.80).aspx
答案 1 :(得分:0)
你可以解决它..设置
......除非你当然已经拥有