0

NHマッピングがあります

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)

しかし、flushを呼び出すと、例外がスローされます。not-nullプロパティは、nullまたは一時的な値SocialDB.NDbModel.TblContent.ArticleTypeを参照します

質問はなぜですか?私が理解しているように、動的更新では、変更されたプロパティを追跡し、その値のみを更新する必要があります。

PS。最初に取得してからモデルを更新すると機能することを知っていますvaritem= MvcApplication.CurrentSession.GetContentById(model.Id); item.Content = model.Content.StripHtml(false);

4

2 に答える 2

2

DynamicUpdate は更新専用であり、新しいオブジェクトを挿入するものではありません。

NHはすでに問題が何であるかをあなたに伝えています

非 null プロパティが null または一時的な値を参照する SocialDB.NDbModel.TblContent.ArticleType

保存する前に、ArticleType プロパティを何らかの値に設定します。

于 2012-05-14T13:25:37.417 に答える
0

通常、EF と同じように機能します。動的更新を使用するには、アイテムを選択してフィールドを更新し、それをデータベースにプッシュして、変更されたフィールドのみを更新する必要があります。

于 2012-06-07T08:47:11.380 に答える