Direi, perché tutte queste informazioni, dovremmo avere un colpevole. Ci sono così tanti problemi (beh problemi infatti) con la mappatura e codice C# , che sicuramente sappiamo:
Nel caso, che questo file com'è sarebbe disponibile per la sessione factory di NHibernate, otterremmo questa eccezione
Che potrebbe essere risolto aggiungendo l'attributo namespace alla mappatura 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>
Una volta risolto il problema, otterremmo in seguito questa eccezione
che potrebbe essere risolto rendendo virtuale tutto il materiale dell'entità:
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; }
Quindi, di sicuro, lo sappiamo:il problema è
- configurazione errata in
hibernate.cfg.xml
- configurazione errata di
Mapping.hbm.xml
proprietà
Questo dovrebbe far parte di hibernate.cfg.xml :
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
...
<mapping assembly="NhibernateORM"/>
il hibernate.cfg.xml deve avere proprietà:
- Costruisci azione ===Contenuto
- Copia nella directory di output ===Copia sempre
il Mapping.hbm.xml deve avere proprietà:
- Costruisci azione ===Risorsa incorporata
- Copia nella directory di output ===Non copiare