2011-07-22 10 views
1

データベースからレコードを戻すために、nhibernateを通してクエリを実行します。nhibernate +流暢nhibernateでオブジェクトを更新するには?

var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault(); 
result.Where = "hi"; 
session.Update(result) 
session.Commit(); 

私は結果を返し、プロパティを更新し、更新してからコミットします。これはクラッシュするので、私は表B(表Aは1つの表Bを持ち、表Bは多くの表Aを持つことができます)

この参照はnullにはなりません。だから、更新をしようとするとクラッシュします。

だから私はそれは幸せである

 var result = session.Query<TableA>().Where(x => x.Id == 10).FirstOrDefault(); 
     result.Where = "hi"; 
     result.TableB = session.Load<TableB>(1); 
     session.Update(result) 
    session.Commit(); 

を行う必要があります。

どのようにしてTableBを読み込まなくても更新できますか?

答えて

1

TableBプロパティマッピングのUpdate値をfalseに設定します。私はあなたがFluent NHibernateを使ってこれをどうやって行うのか分かりませんが、SetAttributeメソッドがこれを行うようです。

何かの行に沿って:.SetAttribute( "update"、 "false");

+1

です.Not.Update() – chobo2