Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使用';身份';WCF RIA服务中不支持模式_Entity Framework_Sql Server 2008_Wcf Ria Services - Fatal编程技术网

Entity framework 使用';身份';WCF RIA服务中不支持模式

Entity framework 使用';身份';WCF RIA服务中不支持模式,entity-framework,sql-server-2008,wcf-ria-services,Entity Framework,Sql Server 2008,Wcf Ria Services,我一直在跟随从Microsoft创建第一个WCF RIA Services应用程序的演练,在尝试使用数据上下文的SubmitChanges()方法编辑和更新数据时遇到问题 正在更新的表在SQL Server 2008的“CourseID”列中设置了标识规范。但是,主键是其他两个字段的组合 使用SubmitChanges()时,应用程序在浏览器中锁定,并显示未处理的异常。通过处理此异常,我获得了一条消息:不支持使用“标识”模式修改列。这是指“CourseID”列 关闭标识规范解决了这个问题,但我需

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

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

使用SubmitChanges()时,应用程序在浏览器中锁定,并显示未处理的异常。通过处理此异常,我获得了一条消息:不支持使用“标识”模式修改列。这是指“CourseID”列


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

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

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

上面的注释指定您需要将StoreGeneraratedPattern设置为“Computed”

而您可以在模型设计器上更改此选项,从而更改CSDL中的值。但是,要使其工作,还必须在SSDL中更改该值。改变这种情况的唯一方法是手工修改XML


请记住,像“从数据库更新模型”这样的各种事情将重新生成SSDL。。。因此,您必须重新应用更改。

因为上面的注释指定您需要将StoreGeneraratedPattern设置为“Computed”

而您可以在模型设计器上更改此选项,从而更改CSDL中的值。但是,要使其工作,还必须在SSDL中更改该值。改变这种情况的唯一方法是手工修改XML


请记住,像“从数据库更新模型”这样的各种事情将重新生成SSDL。。。因此,您必须重新应用更改。

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

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


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

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


这应该是可行的(虽然我只在EF中做过,而不是在RIA服务中做过),但请确保在EDMX中为CourseID正确设置了
StoreGeneratedPattern
。我在想,到底为什么会有这样的结构。如果您有一个代理键应该是您的PK,那么其他两个应该有一个唯一的索引yes,但是对于PK来说,复合键是一个非常糟糕的选择,因为性能原因以及在信息更改时更新信息的困难。@HLGEM我昨天下班后不久得出了这个结论。这里的问题是数据库结构。谢谢你强化这个想法。我将结束这个问题。我们也遇到了这个问题。我认为EF没有理由不支持这一点。我们有一个标识字段,在其上有一个聚集索引,以减少/防止表/索引片段。EF当然应该支持一个不是PK的标识字段。这应该是可行的(虽然我只在EF中做过,而不是在RIA服务中做过),但要确保在EDMX中正确设置了CourseID的
StoreGeneratedPattern
。我在想你到底为什么会有这样的结构。如果您有一个代理键应该是您的PK,那么其他两个应该有一个唯一的索引yes,但是对于PK来说,复合键是一个非常糟糕的选择,因为性能原因以及在信息更改时更新信息的困难。@HLGEM我昨天下班后不久得出了这个结论。这里的问题是数据库结构。谢谢你强化这个想法。我将结束这个问题。我们也遇到了这个问题。我认为EF没有理由不支持这一点。我们有一个标识字段,在其上有一个聚集索引,以减少/防止表/索引片段。EF当然应该支持一个不是PK的标识字段。你能解释一下为什么数据库结构是错误的吗?我遇到了同样的问题,但我使用的是Azure移动服务自动生成的字段。你能解释一下为什么数据库结构是错误的吗?我遇到了相同的问题,但我使用的是Azure Mobile Services自动生成的字段。手动更改忽略“创建和编辑”中的属性,如果此属性的值为“默认值”,如果在“编辑”中您希望更改此值,则此属性将被忽略,并且仍然为“默认值”编辑后手动更改忽略“创建和编辑”中的属性,如果此属性的值为“默认值”,如果在“编辑”中要更改值,则忽略此属性,编辑后仍保留值“默认值”