NHibernate映射异常:无效的子元素

问题描述:

当我尝试在我的MVC应用程序中保存我的饮品对象时,我遇到了NHibernate和映射文件的问题。我的映射文件是一个嵌入式资源,我的hibernate.cfg.xml永远是复制的。NHibernate映射异常:无效的子元素

这里是我的class.cs:

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> 

顺便说一句,打开连接和关闭的罚款,如果我不尝试将其保存在数据库。

这里是我的解决方案资源管理器:

Solution Explorer Image

这里是我逼疯的错误:

"Error: NHibernate.MappingException: FrancosPoS.DBMapping.drink.hbm.xml(6,8): XML validation error: The element 'id' in namespace 'urn:nhibernate-mapping-2.2' has invalid child element 'column' in namespace 'urn:nhibernate-mapping-2.2'. ---> System.Xml.Schema.XmlSchemaValidationException: The element 'id' in namespace 'urn:nhibernate-mapping-2.2' has invalid child element 'column' in namespace 'urn:nhibernate-mapping-2.2'.\r\n --- End of inner exception stack trace --- 

问题是在节点ID,它不会有一个孩子,删除节点,这将仅仅是这样的:

<id name="id"> 
     <generator class="identity" /> 
</id> 

合作lumn的名字在ID节点规定的,并且你没有告诉列有,因为ID列始终需要

而且,在这条线上你的XML映射“不空”的约束:

<hibernate-mapping assembly="FrancosPoS.DBMapping" namespace="FrancosPoS.DBMapping" xmlns="urn:nhibernate-mapping-2.2"> 

“组装“属性似乎是错误的,它应该是你的程序集的名称(我几乎可以肯定是”FrancosPos“)。

+0

Uhmmm,我试过,但现在它给了我这个错误: “错误:NHibernate.MappingException:无法编译映射文件:FrancosPoS.DBMapping.drink.hbm.xml ---> NHibernate.MappingException:持久化类FrancosPoS.DBMapping.drink,FrancosPoS.DBMapping未找到---> System.IO.FileNotFoundException:无法加载文件或程序集“FrancosPoS.DBMapping”或其某个依赖项。系统找不到指定的文件。\ r \ n 也许是因为提交的文件比XML不同的路径上。 我能做些什么! 谢谢。 – gbc921 2012-04-24 14:08:50

+0

检查我的回答,我编辑它 – jorgehmv 2012-04-24 14:51:48

+0

感谢的人! 你是对的,大会只是FrancosPoS。 此致, – gbc921 2012-04-24 15:21:17