簡體   English   中英

使用ria-services更新來自單個實體的單個字段

[英]Update a single field from a single entity with ria-services

在某些情況下,我只想更新數據庫中單個實體的特定字段。

我將這種類型的實體加載到了Silverlight應用程序中,並且我知道它們在服務器上一直在變化……但是Silverlight客戶端必須設置一個字段……服務器只會讀取它。 我如何才能將該字段的新數據發送到服務器?

例如,一個名為“ TextField”的實體。 我在Silverlight應用程序中加載了一個TextField列表,用戶不時會更新實體的Preload(字符串)屬性,該屬性必須返回到服務器,而無需更改服務器上的任何其他內容。

我嘗試將簡單的SetPreloadText(...)方法添加到DomainService,但這只會使Silverlight崩潰,並帶有一些奇怪的錯誤代碼。

有辦法嗎? 我在這里反對Silverlight的想法嗎? 我真的不希望將整個對象發回,因為知道在任何給定時間,客戶端上的版本很可能已經過時。 (對於此特定應用程序可以)

我認為SetPreloadText(..)會崩潰,因為RIA Services使用特殊的命名約定,例如為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

希望對您有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM