Fluent NHibernate を使用して NHibernate マッピングを実行していますが、解決方法がわからない問題に直面しました。問題の単純化されたバージョンは次のとおりです。
私はユーザークラスを持っています:
public class User {
public virtual int Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
}
これは、関連する Fluent NHibernate クラス マップです。
public class UserMap : ClassMap<User> {
public UserMap() {
Id(x => x.Id);
Map(x => x.FirstName);
Map(x => x.LastName);
}
}
2 つの Web フォームがあります。1 つのフォームではユーザーの名を変更でき、2 つ目のフォームではユーザーの姓を変更できます。私が達成しようとしているのは、次のような単純な SQL ステートメントです。
最初のフォームの場合:
UPDATE [users] SET firstname='new first name' WHERE id=1
2 番目の形式の場合:
UPDATE [users] SET lastname='new last name' WHERE id=1
現在、NHibernate はデータベースで次の SQL を実行します。
UPDATE [users] SET firstname=null, lastname='new last name' WHERE id=1
実際のアプリケーションの問題は、いくつかの大きなオブジェクト (およびアクセス制限) で更新するプロパティが多すぎることです。オブジェクト全体を更新するのは無意味に思えます。単一のプロパティ。
どうすればこれを実現できるか、またはこれを解決するための正しい方向に私を向けることができるかについて、誰かがアドバイスを提供できることを願っています。