2010-07-24 83 views
1

數據庫有兩個表,一個是mb_user表,另外一個是mb_comment表。用戶有一些註釋。當我向mb_comment中插入註釋時,mb_comment的comment_user_id爲null。我可以保存comment_user_id的價值,請幫助我!NHibernate保存對象,列爲空

地圖文件 mb_user地圖文件

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MiserBlogData" namespace="MiserBlogData.Entities" default-lazy="false"> 
    <class name="A_Person" table="mb_user" discriminator-value="0"> 
    <id name="Id" column ="user_id" > 
     <generator class ="native"/> 
    </id> 
    <discriminator column="user_role" type="int" /> 
    <property name="State" column="user_state" /> 
    <property name ="Name" column="user_name" /> 
    <property name ="Pwd" column="user_pwd" /> 
    <property name ="CDate" column="user_cdate" /> 
    <property name ="UDate" column="user_udate" /> 
    <property name ="Role" column="user_role" /> 
    <property name ="Face" column="user_face" /> 
    <bag name="CommentList" > 
     <key column="comment_user_id" foreign-key="FK_PersonComment" /> 
     <one-to-many class="Comment" /> 
    </bag> 
    </class> 
</hibernate-mapping> 

mb_comment地圖文件

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MiserBlogData" namespace="MiserBlogData.Entities"> 
    <class name ="Comment" table="mb_comment"> 
    <id name="Id" column ="comment_id"> 
     <generator class ="native"/> 
    </id> 
    <property name ="ArticleId" column="comment_article_id" /> 
    <property name ="Content" column="comment_content" /> 
    <property name ="State" column="comment_state" /> 
    <property name ="CDate" column="comment_cdate" /> 

    <many-to-one name="Person" column="comment_user_id" class="A_Person" not-null="true" foreign-key="FK_PersonComment" /> 
    </class> 
</hibernate-mapping> 

C#代碼

protected ISession _session = NHibernateHelper.GetCurrentSession(); 

    public virtual object Save<T>(T obj) where T : class 
    { 
     return _session.Save(obj); 
    } 

錯誤:非空屬性引用null或瞬時valueMiserBlogData.Entities.Comment.Person

我知道,如果我在mb_comment文件中刪除不空=「真」,系統好。不過comment_user_id欄爲空如何解決?

回答

1

您應該將您的Comment上的屬性Person分配給有效的A_Person實例。然後NHibernate會知道在表中寫入哪個用戶標識。