我一直在跟踪从Microsoft创建第一个WCF RIA服务应用程序的演练,并且在尝试使用数据上下文的SubmitChanges()方法编辑和更新数据时遇到了问题。
正在更新的表在“CourseID”列的SQL Server 2008中设置了标识规范。但是,PRIMARY键是另外两个字段的组合。
当使用SubmitChanges()时,应用程序在浏览器中锁定会出现未处理的异常。通过处理此异常,我设法得到消息:不支持修改具有“标识”模式的列。这是指'CourseID'列。
关闭身份规范解决了问题,但我需要自动递增ID。以什么方式不支持此功能。或者我哪里错了?
答案 0 :(得分:1)
如上面的评论所指定,您需要将StoreGeneraratedPattern设置为“Computed”。
虽然您可以在模型设计器上更改此设置,以更改CSDL中的值。但是,为了使其工作,还必须在SSDL中更改该值。改变这种情况的唯一方法是手动修改XML。
请记住“从数据库更新模型”等各种内容将重新生成SSDL ...因此您必须重新应用更改。
答案 1 :(得分:1)
此问题有一种解决方法:将[RoundtripOriginal]属性添加到实体元数据类中的相应属性。
参见Jeff Handley在Silverlight论坛讨论中的回应:
答案 2 :(得分:-1)
这里的数据库结构有问题。