sql >> Database >  >> RDS >> Mysql

NHibernate.Mapping-uitzondering. Geen persistenter voor Namespace.className

Ik zou zeggen, omdat al die informatie, we een schuldige moeten hebben. Er zijn zoveel problemen (nou ja problemen in feite) met de toewijzing en C#-code , dat weten we zeker:

In het geval dat dit bestand zoals het is beschikbaar zou zijn voor de NHibernate-sessiefabriek, we zouden deze uitzondering krijgen

Dit kan worden opgelost door een namespace-attribuut toe te voegen aan de mapping 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>

Zodra dat zou zijn opgelost, zouden we later deze uitzondering krijgen

die kan worden opgelost door alle entiteitsdingen virtueel te maken:

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

Dus we weten het zeker - het probleem is

  • verkeerde configuratie in hibernate.cfg.xml
  • verkeerde configuratie van de Mapping.hbm.xml eigenschappen

Dit zou onderdeel moeten zijn van de hibernate.cfg.xml :

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

de slaapstand.cfg.xml moet eigenschappen hebben:

  • Actie bouwen ===Inhoud
  • Kopiëren naar uitvoermap ===Altijd kopiëren

de Mapping.hbm.xml moet eigenschappen hebben:

  • Actie bouwen ===Ingesloten bron
  • Kopieer naar uitvoermap ===Niet kopiëren



  1. ORA-01460:niet-geïmplementeerde of onredelijke conversie gevraagd

  2. Functie voor datumnotatie in SQL Server

  3. Waarom geeft de opdracht 'explain' verschillende resultaten op dezelfde SQL-instructie?

  4. SQL INSERT INTO uit meerdere tabellen