Mysql
 sql >> база данни >  >> RDS >> Mysql

NHibernate.Mapping Exception. Няма персистер за Namespace.className

Бих казал, защото цялата тази информация трябва да имаме виновник. Има толкова много проблеми ( добре, проблеми всъщност) скартографирането и код на C# , което със сигурност знаем:

В случай, че този файл какъвто е ще бъде достъпна за фабриката за сесии на NHibernate, ще получим това изключение

Което може да бъде поправено чрез добавяне на атрибут namespace към съпоставянето namespace="NhibernateORM"

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
  assembly="NhibernateORM"
  namespace="NhibernateORM"
  auto-import="true">
  <class name="Layout" table="mytable">
    <id name="Id" column="ID" type="int" generator="assigned" />
    <property name="Name"        column="name"        type="String"/>
    <property name="xCoordinate" column="xCoordinate" type="double" />
    <property name="yCoordinate" column="yCoordinate" type="double" />
  </class>
</hibernate-mapping>

След като това бъде коригирано, по-късно ще получим това изключение

което може да бъде поправено, като направим всички неща на Entity виртуални:

namespace NhibernateORM
{
    public class Layout
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual double xCoordinate { get; set; }
        public virtual double yCoordinate { get; set; }

Така че със сигурност знаем - проблемът е

  • грешна конфигурация в hibernate.cfg.xml
  • грешна конфигурация на Mapping.hbm.xml свойства

Това трябва да е част от hibernate.cfg.xml :

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
      ...
      <mapping assembly="NhibernateORM"/>

hibernate.cfg.xml трябва да има свойства:

  • Създаване на действие ===Съдържание
  • Копиране в изходна директория ===Копиране винаги

Mapping.hbm.xml трябва да има свойства:

  • Действие за изграждане ===Вграден ресурс
  • Копиране в изходна директория ===Не копирайте



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка за най-новите съобщения

  2. Синтактична грешка на MySQL с просто INSERT?

  3. mysql е мъртъв, но подсистемата е заключена

  4. Презареждане на .env променливи без рестартиране на сървъра (Laravel 5, споделен хостинг)

  5. Структура/дизайн на базата данни