在某些情况下,我只想更新数据库中单个实体的特定字段。
我将该类型的实体加载到我的silverlight应用程序中, 我知道他们在服务器上不断变换......但是有一个领域 必须由silverlight客户端设置...服务器只会读取它。 如何将该字段的新数据发送到服务器?
示例名为“TextField”的实体。 我有一个在silverlight应用程序中加载的TextField列表 并且用户将不时更新Preload(string)属性 一个实体,必须返回服务器而不更改服务器上的任何其他内容。
我尝试将一个简单的SetPreloadText(...)方法添加到DomainService但是 只是让Silverlight崩溃了一些奇怪的错误代码。
有没有办法解决这个问题?我在这里反对Silverlight的想法吗? 我真的不想发回整个对象,因为知道在任何给定时间客户端上的版本很可能已经过时了。 (这个特定的应用程序没问题)
答案 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
希望这有帮助!