我目前正在与Silverlight 3、C和LinqToSQL一起玩。
我在sqlexpress服务器上构建了一个数据库,其中包含一些表,例如:
员工(ID、姓名、部门ID、时间戳)
部门(ID、名称、时间戳)
ID字段是varchar(50),名称字段是varchar(100),时间戳字段是timestamp类型。
在我的Silverlight解决方案中,我有两个项目:
一个服务器端,其中包括一个表示数据库的LinqToSQL模型和一个wcfService,其中包括通过Linq查询来查询对象的方法,这使得第二个项目可以访问数据。
第二个项目是一个简单的Silverlight应用程序,它应该从服务中获取结果并在页面上显示。
这些查询对于某些对象是可以的,其他查询则会出现操作异常(甚至在执行查询之前),这表示:
元素“byte[]timestamp”和“system.string id”都标记为rowversion。
我已经仔细检查了所有内容,甚至从设计器中删除了这些表,并再次添加它们,但运气不好,我一直都会收到这些错误。这些表几乎都是相同的,但不知何故,这个错误只会对其中一些表产生影响,而其他表则很好。
timestamp列的类型为byte[],而id列的linqtosql模型中的类型为system.string。但只有时间戳标记为时间戳,并且对于其服务器数据类型声明为rowversion而不是NULL。另一方面,ID列没有设置任何值,这使我猜测为什么会引发与rowversion冲突相关的错误。
有什么建议可能导致冲突吗?