我正在使用MVC 3 Razor(c#),並在我看來我顯示的實體只有用戶可以更新Name屬性。在MVC中更新實體屬性
public class Product{
public Guid Id {get; set; }
public string Name {get; set;}
public string Type {get; set;}
}
爲了防止再次保存之前具有負載從數據庫中整個對象,我用的方法,如:
public void UpdateProduct(Guid id, Hashtable propertiesToUpdate) {}
業務對象
,允許一組屬性的更新該實體由AJAX請求或表單Post組成。 (數據恆定性使用時間戳完成)。
我已經看過其他方法,例如在檢測到更改時使用INotifyPropertyChanged更新屬性,但這似乎只在您能夠在請求之間保留實例或在進行更改之前加載整個實體時纔有用(這似乎很重)。
我看到NHibernate使用動態更新類似的想法。這是否會導致NHibernate從數據庫加載數據並在生成更新語句之前進行比較?
是否有保持所述對象的最佳方式被編輯(會話[]?)請求或更新個人性質的較少笨拙方式之間(不移動到實體屬性值模型)?
http://stackoverflow.com/questions/1243390/what-is-the-best-approach-to-update-only-changed-properties-in-nhibernate-when-s似乎解決了類似問題來自NHibernate方面的想法。 – Mark
最後,我使用的內部列表UpdatedPropertiesList和更新呼叫爲數據存儲檢查該列表更新前。無需首先加載對象即可進行處理。 – Mark