sql >> Database teknologi >  >> RDS >> Mysql

NHibernate.Mapping undtagelse. Ingen persister for Namespace.className

Jeg vil sige, fordi al den information burde vi have en skyldig. Der er så mange problemer (vel problemer faktisk) med kortlægningen og C#-kode , som vi helt sikkert ved:

I tilfælde af at denne fil som den er ville være tilgængelig for NHibernate session factory, ville vi få denne undtagelse

Hvilket kunne rettes ved at tilføje navneområdeattribut til kortlægning 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>

Når det var rettet, ville vi senere få denne undtagelse

hvilket kunne rettes ved at gøre alle Entity-ting virtuelle:

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; }

Så det ved vi helt sikkert - problemet er

  • forkert konfiguration i hibernate.cfg.xml
  • forkert konfiguration af Mapping.hbm.xml egenskaber

Dette bør være en del af 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 skal have egenskaber:

  • Byg handling ===Indhold
  • Kopier til Output Directory ===Kopiér altid

Mapping.hbm.xml skal have egenskaber:

  • Byg handling ===Integreret ressource
  • Kopier til Output Directory ===Kopier ikke



  1. Opbygning af en simpel webapp med Bottle, SQLAlchemy og Twitter API

  2. Få opdaterede MySQL-tabelposter i python uden at lukke forbindelsen

  3. Kalder model funktion i visning kodetænder

  4. Fjernelse af en mængde fra flere rækker i en database