sql >> Databáze >  >> RDS >> Mysql

NHibernate.Mapping Exception. Žádný persister pro Namespace.className

Řekl bych, že kvůli všem těm informacím bychom měli mít viníka. Je tu tolik problémů (tedy problémů ve skutečnosti) pomocí mapování a kód C# , které určitě víme:

V případě, že tento soubor tak jak je bude k dispozici NHibernate session factory, dostaneme tuto výjimku

Což by se dalo opravit přidáním atributu jmenného prostoru do mapování 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>

Jakmile to bude opraveno, později dostaneme tuto výjimku

což by se dalo opravit tím, že by se všechny věci Entity staly virtuálními:

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

Takže určitě víme – problém je

  • nesprávná konfigurace v souboru hibernate.cfg.xml
  • nesprávná konfigurace Mapping.hbm.xml vlastnosti

Toto by mělo být součástí 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 musí mít vlastnosti:

  • Akce sestavení ===Obsah
  • Kopírovat do výstupního adresáře ===Kopírovat vždy

Mapping.hbm.xml musí mít vlastnosti:

  • Vytvořit akci ===Vložený zdroj
  • Kopírovat do výstupního adresáře ===Nekopírovat



  1. Změna datového typu sloupce v MySQL bez ztráty dalších metadat (DEFAULT, NOTNULL...)

  2. Jak vložím prostorový bod mysql s modelem yii?

  3. Jak přidat nový sloupec do tabulky MYSQL?

  4. Vytvoření tabulky s názvem proměnné php mysql