C# NHibernate保存对象,列为空
数据库有两个表,一个是mb_user table,另一个是mb_comment table。用户有一些注释。当我在mb_comment中插入注释时,mb_comment的comment_user_id为null。我无法保存comment_user_id的值。请帮助我 地图文件 mb_用户映射文件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
<?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