Tôi muốn nói, bởi vì tất cả những thông tin đó, chúng ta nên có một thủ phạm. Có rất nhiều vấn đề (à vấn đề trên thực tế) với ánh xạ và mã C # , mà chúng tôi chắc chắn biết:
Trong trường hợp, tệp này nguyên trạng sẽ có sẵn cho nhà máy phiên NHibernate, chúng tôi sẽ nhận được Ngoại lệ này
Có thể sửa lỗi này bằng cách thêm thuộc tính không gian tên vào ánh xạ 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>
Sau khi điều đó đã được khắc phục, sau đó chúng tôi sẽ nhận được ngoại lệ này
điều này có thể được khắc phục bằng cách biến tất cả các Đối tượng trở thành ảo:
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; }
Vì vậy, chắc chắn, chúng tôi biết - vấn đề là
- cấu hình sai trong
hibernate.cfg.xml
- cấu hình sai của
Mapping.hbm.xml
tài sản
Đây phải là một phần của hibernate.cfg.xml :
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
...
<mapping assembly="NhibernateORM"/>
the hibernate.cfg.xml phải có các thuộc tính:
- Xây dựng Hành động ===Nội dung
- Sao chép vào Thư mục đầu ra ===Sao chép luôn
the Mapping.hbm.xml phải có các thuộc tính:
- Hành động xây dựng ===Tài nguyên được nhúng
- Sao chép vào Thư mục đầu ra ===Không sao chép