NHibernate сохранить объект, столбец пуст - PullRequest
1 голос
/ 24 июля 2010

в базе данных есть две таблицы, одна из них - таблица mb_user, а другая - таблица mb_comment. У пользователя есть некоторые комментарии. Когда я вставляю комментарий в mb_comment, значение comment_user_id для mb_comment равно нулю. Я не могу сохранить значение comment_user_id.Pleaseпомогите мне!

Файл карты 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);
    }

ошибка: свойство not-null ссылается на нулевое или временное значениеMiserBlogData.Entities.Comment.Person

Я знаю, удаляю ли я not-null = "true"в файле mb_comment система исправна. Но столбец comment_user_id имеет значение null. Как решить?

1 Ответ

1 голос
/ 24 июля 2010

Вы должны присвоить свойству Person в вашем Comment действительный экземпляр A_Person. Тогда NHibernate будет знать, какой идентификатор пользователя записать в таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...