2012-05-09 42 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) 

但是,當我打電話沖洗它拋出異常。 非空屬性引用空值或瞬態值SocialDB.NDbModel.TblContent.ArticleType

問題是爲什麼?據我瞭解,動態更新應追蹤哪些屬性發生了變化並僅更新該值。

PS。我知道這工作,如果首先獲得再更新模型 VAR項目= MvcApplication.CurrentSession.GetContentById(model.Id); item.Content = model.Content.StripHtml(假);

回答

0

一般來說它的工作原理,如EF,使用動態更新的需要選擇項目和更新區,然後把它推到數據庫,所以它會只更新修改的字段。

1

DynamicUpdate僅用於更新,不插入新的對象。

NH已經告訴你問題是什麼

非空屬性引用null或瞬時值SocialDB.NDbModel.TblContent.ArticleType

設置ArticleType屬性爲某個值之前保存。