Проблема NHibernate: постоянный класс не известен - PullRequest
0 голосов
/ 02 июля 2018

У меня есть две таблицы Person и PassportInfo со структурой, приведенной ниже:

Table Person
(
PersonID uniqueidentifier not null, (PK)
Name varchar(100) not null,
Email varchar(100) not null
)

Table PassportInfo
(
ID int identity(1,1) not null Primary Key,
personID uniqueidentifier null, (FK to PersonID in Person table)
PassportNumber varchar(100) not null
)

Также это отображение для Персона

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Project" namespace="Project">
  <class name="classperson" table="Person" >
    <id name="ID" type="System.Guid" column="personID">
      <generator class="Guid"/>
    </id>
    <property name="Name" column="Name" type="System.String" length="100" not-null="true" />
    <property name="Email" column="Email" type="System.String" length="100" not-null="true" />
    <one-to-one name="classpassportinfo" class="classpassportinfo" constrained="true" />
  </class>
</hibernate-mapping>

Это отображение для PassportInfo

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Project" namespace="Project">
  <class name="classpassportinfo" table="PassportInfo" >
    <id name="ID" type="System.Int32" column="ID">
      <generator class="identity"/>
    </id>
    <property name="PassportNumber" column="PassportNumber" type="System.String" length="100" not-null="true" />
    <one-to-one name="classperson" class="classperson"  />
  </class>
</hibernate-mapping>

Это класс объекта для человека

namespace Project
{
    [Serializable]
    public class classperson : Base<System.Guid>
    {
        private System.String _Name;
        private System.String _Email;
        private classpassportinfo _classpassportinfo;

         public classperson()
        {
        }

        public classperson(System.Guid id)
        {
            base.ID = id;
        }

         public virtual System.String Name {
             get { return _Name; }
             set { _Name = value;}
         }

         public virtual System.String Email {
             get { return _Email; }
             set { _Email = value;}
         }

         public virtual classpassportinfo classpassportinfo {
             get { return _classpassportinfo; }
             set { _classpassportinfo = value;}
         }
    }
}

Наконец, это класс объектов для PassportInfo

namespace Project
{
    [Serializable]
    public class classpassportinfo :Base<Systme.Int32>
    {
        private System.String _PassportNumber;
        private classpassportinfo _classpassportinfo;

         public classpassportinfo()
        {
        }

        public classpassportinfo(System.Int32 id)
        {
            base.ID = id;
        }

         public virtual System.String PassportNumber {
             get { return _PassportNumber; }
             set { _PassportNumber = value;}
         }

         public virtual classperson classperson {
             get { return _classperson; }
             set { _classperson = value;}
         }
    }
}

Когда я выполняю приведенный выше код, я получаю сообщение об ошибке, в котором говорится, что постоянный класс не известен: Project.classpassportinfo. Я новичок в nhibernate. Любая помощь в этом приветствуется.

...