私は MVC 3 Razor (c#) を使用しており、私のビューでは、ユーザーが Name プロパティのみを更新できるエンティティを表示しています。
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 要求またはフォーム ポストのいずれかによってエンティティの一連のプロパティを更新できるようにします。(データの一貫性はタイムスタンプを使用して行われます)。
変更が検出されたときに INotifyPropertyChanged を使用してプロパティを更新するなどの他の方法を見てきましたが、これは、リクエスト間でインスタンスを保持できる場合、または変更を行う前にエンティティ全体をロードできる場合にのみ役立つようです (重いようです)。 .
NHibernate は同様の考え方で dynamic-update を使用しています。これにより、NHibernate はデータベースからデータをロードし、更新ステートメントを生成する前に比較を行いますか?
リクエスト間で編集中のオブジェクト (Session[]?) を維持する最善の方法、または個々のプロパティを更新する (エンティティ属性値モデルに移行せずに) あまり扱いにくい方法はありますか?