2012-05-09 10 views
0

私はNHマッピング流暢NHibernateはとDynamicUpdate

public class TblContentMap : ClassMap<TblContent> { 

     public TblContentMap() { 
      Table("tbl_content"); 
      DynamicUpdate(); 

      Id(x => x.Id).GeneratedBy.Identity().Column("id"); 
.... 
      Map(x => x.ArticleType).Column("article_type").Not.Nullable(); 

     } 
    } 

はその後、私のコントローラでそのは

public ActionResult Save(TblContent model) 

としてマッピングされているが、私はそれが例外をスローフラッシュ呼び出すとき。 nullでないプロパティがnull値または一時的な値を参照しています。SocialDB.NDbModel.TblContent.ArticleType

なぜですか?動的更新はどのプロパティが変更されたかを追跡し、その値のみを更新するはずです。

PS。私はそれが最初にその後、モデルを更新する場合、それが動作することを知っている var item = MvcApplication.CurrentSession.GetContentById(model.Id); item.Content = model.Content.StripHtml(false);

答えて

0

一般的にEFのように機能し、アイテムを選択してフィールドを更新し、データベースにプッシュして変更されたフィールドのみを更新する動的更新が必要です。

1

DynamicUpdateは新しいオブジェクトを挿入するのではなく、更新専用です。

NHはすでに問題が

-nullでないプロパティがnullまたは過渡値SocialDB.NDbModel.TblContent.ArticleTypeを参照

は前にいくつかの値にArticleTypeプロパティを設定している何を言っています節約する。