Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyjątek NHibernate.Mapping. Brak utrwalacza dla Namespace.className

Powiedziałbym, że ponieważ wszystkie te informacje, powinniśmy mieć winowajcę. Jest tak wiele problemów (no, problemy w rzeczywistości) z mapowaniem i kod C# , że na pewno wiemy:

W przypadku, gdy ten plik tak jak jest byłby dostępny dla fabryki sesji NHibernate, otrzymalibyśmy ten wyjątek

Co można naprawić, dodając atrybut namespace do mapowania 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>

Gdy to zostanie naprawione, później otrzymamy ten wyjątek

co można naprawić, czyniąc wszystkie rzeczy Entity wirtualnymi:

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

Więc na pewno wiemy - problem jest

  • niewłaściwa konfiguracja w hibernate.cfg.xml
  • niewłaściwa konfiguracja pliku Mapping.hbm.xml właściwości

Powinno to być częścią pliku hibernate.cfg.xml :

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

plik hibernate.cfg.xml musi mieć właściwości:

  • Akcja budowania ===Treść
  • Kopiuj do katalogu wyjściowego ===Kopiuj zawsze

Mapping.hbm.xml musi mieć właściwości:

  • Akcja budowania ===Osadzony zasób
  • Kopiuj do katalogu wyjściowego ===Nie kopiuj



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dołącz do dwóch tabel i uzyskaj najniższą cenę z wieloma warunkami (wiele sku)

  2. java.sql.SQLException:nie znaleziono odpowiedniego sterownika do testu localhost

  3. Zapytanie z wieloma polubieniami

  4. Nie można usunąć tabeli:Ograniczenie klucza obcego nie działa

  5. PHP-MySQL-Jak bezpiecznie zwiększać pole integer MySQL?