WCF RIA服务不支持修改具有“标识”模式的列

时间:2010-05-06 17:07:21

标签: entity-framework sql-server-2008 wcf-ria-services

我一直在跟踪从Microsoft创建第一个WCF RIA服务应用程序的演练,并且在尝试使用数据上下文的SubmitChanges()方法编辑和更新数据时遇到了问题。

正在更新的表在“CourseID”列的SQL Server 2008中设置了标识规范。但是,PRIMARY键是另外两个字段的组合。

当使用SubmitChanges()时,应用程序在浏览器中锁定会出现未处理的异常。通过处理此异常,我设法得到消息:不支持修改具有“标识”模式的列。这是指'CourseID'列。

关闭身份规范解决了问题,但我需要自动递增ID。以什么方式不支持此功能。或者我哪里错了?

3 个答案:

答案 0 :(得分:1)

如上面的评论所指定,您需要将StoreGeneraratedPattern设置为“Computed”。

虽然您可以在模型设计器上更改此设置,以更改CSDL中的值。但是,为了使其工作,还必须在SSDL中更改该值。改变这种情况的唯一方法是手动修改XML。

请记住“从数据库更新模型”等各种内容将重新生成SSDL ...因此您必须重新应用更改。

答案 1 :(得分:1)

此问题有一种解决方法:将[RoundtripOriginal]属性添加到实体元数据类中的相应属性。

参见Jeff Handley在Silverlight论坛讨论中的回应:

WCF RIA Bug: Changes include "Identity" column DomainDataSource( "Indentity" column no modify), WCF RIA does not support

答案 2 :(得分:-1)

这里的数据库结构有问题。