2012-04-24 18 views
0

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 --- 

答えて

2

問題はノードIDである、それは子供を持っていませんそのノードを削除すると、次のようになります。

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

lumnの名前は、IDノードに指定され、そしてあなたは、列がID列は、常にあなたのXMLマッピングのこの行では、

も必要とされているので、「非NULL」制約がある伝えるために持っていけないされています

<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'またはその依存関係の1つを読み込めませんでした。指定されたファイルが見つかりません。たぶん コミットファイルがXMLとは異なるパス上にあるので。 私が!? おかげで何を行うことができます。 – gbc921

+0

私の答えをチェックし、私はそれを – jorgehmv

+0

おかげで男を編集した! あなたは正しいです、アセンブリはちょうどFrancosPoSです。 よろしくお願いいたします。 – gbc921

関連する問題