sql >> データベース >  >> RDS >> Mysql

NHibernate.Mapping例外。 Namespace.classNameの永続性はありません

    私は、そのすべての情報があるので、私たちは犯人を持っているべきだと思います。非常に多くの問題があります(まあ問題 実際) マッピングを使用 およびC#コード 、私たちが確かに知っていること:

    場合によっては、このファイルは現状のまま NHibernateセッションファクトリで利用できる場合、この例外が発生します

    これは、マッピングに名前空間属性を追加することで修正できます 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>
    

    それが修正されると、後でこの例外が発生します

    これは、すべてのエンティティを仮想化することで修正できます:

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

    ですから、確かに、問題は

    です。
    • hibernate.cfg.xmlの設定が間違っています
    • Mapping.hbm.xmlの設定が間違っています プロパティ

    これは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 プロパティが必要です:

    • ビルドアクション===コンテンツ
    • 出力ディレクトリにコピー===常にコピー

    Mapping.hbm.xml プロパティが必要です:

    • ビルドアクション===埋め込みリソース
    • 出力ディレクトリにコピー===コピーしないでください



    1. 日付範囲が存在することを確認するにはどうすればよいですか

    2. MySQL COALESCE()の説明

    3. 行の値を連結するT-SQL

    4. count(*)によるテーブルのOracle行数とDBA_TABLESのNUM_ROWS