C# NHibernate保存对象,列为空

C# NHibernate保存对象,列为空,c#,nhibernate,C#,Nhibernate,数据库有两个表,一个是mb_user table,另一个是mb_comment table。用户有一些注释。当我在mb_comment中插入注释时,mb_comment的comment_user_id为null。我无法保存comment_user_id的值。请帮助我 地图文件 mb_用户映射文件 <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2

数据库有两个表,一个是mb_user table,另一个是mb_comment table。用户有一些注释。当我在mb_comment中插入注释时,mb_comment的comment_user_id为null。我无法保存comment_user_id的值。请帮助我

地图文件 mb_用户映射文件

<?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_注释映射文件

<?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);
    }
protectedisession\u session=NHibernateHelper.GetCurrentSession();
公共虚拟对象保存(T obj),其中T:class
{
返回会话保存(obj);
}
错误:not null属性引用空值或暂时值MiserBlogData.Entities.Comment.Person


我知道,如果我删除mb_comment文件中的not null=“true”,系统是好的。但是comment_user_id列是空的。如何解决?

您应该将
comment
上的属性
Person
分配给一个有效的
Person
实例。然后NHibernate将知道在表中写入哪个用户id

您应该将
注释上的属性
Person
分配给一个有效的
Person
实例。然后NHibernate将知道在表中写入哪个用户id