.net 使用ria服务从单个实体更新单个字段

.net 使用ria服务从单个实体更新单个字段,.net,silverlight,entity-framework,wcf-ria-services,.net,Silverlight,Entity Framework,Wcf Ria Services,在某些情况下,我只想更新数据库中单个实体的特定字段 我将该类型的实体加载到silverlight应用程序中, 我知道他们在服务器上不断变化。。。但有一个领域 必须由silverlight客户端设置。。。服务器将只读取它。 如何将该字段的新数据发送到服务器 示例一个名为“TextField”的实体。 我在silverlight应用程序中加载了一个文本字段列表 用户会不时地更新的Preload(string)属性 一个实体,它必须返回到服务器而不更改服务器上的任何其他内容 我尝试向DomainSer

在某些情况下,我只想更新数据库中单个实体的特定字段

我将该类型的实体加载到silverlight应用程序中, 我知道他们在服务器上不断变化。。。但有一个领域 必须由silverlight客户端设置。。。服务器将只读取它。 如何将该字段的新数据发送到服务器

示例一个名为“TextField”的实体。 我在silverlight应用程序中加载了一个文本字段列表 用户会不时地更新的Preload(string)属性 一个实体,它必须返回到服务器而不更改服务器上的任何其他内容

我尝试向DomainService添加一个简单的SetPreloadText(…)方法,但没有成功 只是用一些奇怪的错误代码使Silverlight崩溃

有办法吗?我在这里反对Silverlight的想法吗? 我真的不想将整个对象发送回去,因为我知道,在任何给定的时间,客户端上的版本都很可能过时。(这对于这个特定的应用程序来说是可以的)

我认为setpreload文本(..)chrash是因为RIA服务使用特殊的命名事件,比如crud的insert/update/delete,除非您指定它的名称不同

如果您只想更新一个特定属性,因为另一个属性没有更改。你应该看看

this.Context.AttachAsModified(currentEntityWithAllTextFields, this.ChangeSet.GetOriginal(currentEntityWithAllTextFields));
在更新方法中。有了这个,你可以准确地过滤出改变了什么


希望这有帮助…

现在您需要使用以下功能:

  this._yourENtitySet.Value.ApplyCurrentValues(modified); // The one you received
  this._yourENtitySet.Value.ApplyOriginalValues(original); /// The original one

希望这有帮助

修改后的方法不可用。。。不在服务中,也不在客户端,有什么想法吗?您使用的是SL3和RIA服务测试版,还是SL4和RIA服务RC?如果您使用的是RC,则AttachAsModified已移动到entityset,因此它将为this.Context.TextFields.AttachAsModified