使用ria-services从单个实体更新单个字段

时间:2010-04-02 18:20:57

标签: .net silverlight entity-framework wcf-ria-services

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

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

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

我尝试将一个简单的SetPreloadText(...)方法添加到DomainService但是 只是让Silverlight崩溃了一些奇怪的错误代码。

有没有办法解决这个问题?我在这里反对Silverlight的想法吗? 我真的不想发回整个对象,因为知道在任何给定时间客户端上的版本很可能已经过时了。 (这个特定的应用程序没问题)

2 个答案:

答案 0 :(得分:0)

我认为SetPreloadText(..)会崩溃,因为RIA服务使用特殊的命名概念,例如插入/更新/删除crud,除非你指定它命名为不同。

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

this.Context.AttachAsModified(currentEntityWithAllTextFields, this.ChangeSet.GetOriginal(currentEntityWithAllTextFields));

在您的更新方法中。有了这个,你可以精确地过滤出改变了......

希望这会有所帮助...

答案 1 :(得分:0)

现在你需要使用它:

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

希望这有帮助!