Saya akan mengatakan, karena semua informasi itu, kita harus memiliki pelakunya. Ada begitu banyak masalah (well masalah sebenarnya) dengan pemetaan dan kode C# , yang pasti kita ketahui:
Jika file ini apa adanya akan tersedia untuk pabrik sesi NHibernate, kami akan mendapatkan Pengecualian ini
Yang dapat diperbaiki dengan menambahkan atribut namespace ke pemetaan 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>
Setelah itu diperbaiki, kami nantinya akan mendapatkan pengecualian ini
yang dapat diperbaiki dengan membuat semua barang Entitas menjadi virtual:
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; }
Jadi, pasti, kita tahu - masalahnya adalah
- konfigurasi yang salah di
hibernate.cfg.xml
- konfigurasi yang salah dari
Mapping.hbm.xml
properti
Ini harus menjadi bagian dari 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 harus memiliki properti:
- Bangun Tindakan ===Konten
- Salin ke Direktori Keluaran ===Salin selalu
Pemetaan.hbm.xml harus memiliki properti:
- Bangun Tindakan ===Sumber Daya Tersemat
- Salin ke Direktori Keluaran ===Jangan salin