NHibernate映射异常:无效的子元素
当我试图在MVC应用程序中保存饮料对象时,NHibernate和映射文件出现问题。我的映射文件是一个嵌入式资源,我的hibernate.cfg.xml是copy always 这是我的班级NHibernate映射异常:无效的子元素,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,当我试图在MVC应用程序中保存饮料对象时,NHibernate和映射文件出现问题。我的映射文件是一个嵌入式资源,我的hibernate.cfg.xml是copy always 这是我的班级 namespace FrancosPoS.DBMapping { public class drink { public drink() { } public virtual int id { get; set; } public virtual st
namespace FrancosPoS.DBMapping {
public class drink {
public drink() { }
public virtual int id { get; set; }
public virtual string type { get; set; }
public virtual string price { get; set; }
}
}
我的XML映射:
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="FrancosPoS.DBMapping" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">
<class name="drink" table="drink" lazy="true" >
<id name="id">
<generator class="identity" />
<column name="id" sql-type="int(11)" not-null="true" />
</id>
<property name="type">
<column name="type" sql-type="varchar(25)" not-null="true" />
</property>
<property name="price">
<column name="price" sql-type="varchar(8)" not-null="true" />
</property>
</class>
</hibernate-mapping>
问题出在节点id中,它没有子节点,删除该节点后,它将如下所示:
<id name="id">
<generator class="identity" />
</id>
列的名称是在id节点中指定的,您不必告诉列有“NOTNULL”约束,因为id列总是必需的
此外,在xml映射的这一行中:
<hibernate-mapping assembly="FrancosPoS.DBMapping" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">
“assembly”属性似乎是错误的,它应该是程序集的名称(我几乎可以肯定它是“FrancosPos”) 嗯,我试过了,但现在它给了我这个错误:错误:NHibernate.MappingException:无法编译映射文档:FrancosPoS.DBMapping.drink.hbm.xml-->NHibernate.MappingException:持久类FrancosPoS.DBMapping.drink,FrancosPoS.DBMapping未找到---->System.IO.FileNotFoundException:无法加载文件或程序集“FrancosPoS.DBMapping”或其依赖项之一。系统找不到指定的文件。\r\n可能是因为提交文件位于与xml不同的路径上。我能做什么!?谢谢,谢谢你!你说得对,大会就是弗朗索斯波斯。真诚地
<hibernate-mapping assembly="FrancosPoS.DBMapping" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2">