Gorkhali Ответов: 0

Нет персистента для: использования nhibernate


<pre lang="text">I am trying to use nHibernate with SQL Server 2012  in my project. I am getting above said error" No persister for CafePOS.CafeTableGroup".My app.config file :

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
            <session-factory>
                <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
              <property name="connection.driver_class">
                NHibernate.Driver.SqlClientDriver
               </property>
                <property name="dialect">NHibernate.Dialect.MsSql2012Dialect</property>
             
                <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=cafePOSdb;Integrated Security=True;</property>
              <property name="proxyfactory.factory_class">NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate</property>
                <mapping assembly="CafePOS" />
            </session-factory>
        </hibernate-configuration><pre>

Мой файл SessionFactory. cs :

namespace CafePOS
{
    public sealed class SessionFactory
    {
        private static volatile ISessionFactory iSessionFactory;
        private static object syncRoot = new Object();
        public static ISession OpenSession
        {
            get
            {
                if (iSessionFactory == null)
                {
                    lock (syncRoot)
                    {
                        if (iSessionFactory == null)
                        {
                            Configuration configuration = new Configuration();
                            iSessionFactory = configuration.BuildSessionFactory();
                        }
                    }
                }
                return iSessionFactory.OpenSession();
            }
        }
    }
}


Мой cafe_table_group.hbm.xml файл:
<pre><?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping assembly="CafePOS" namespace="CafePOS" xmlns="urn:nhibernate-mapping-2.2">
  <class name="cafe_table_group" table="cafe_table_group" lazy="true" >
    <id name="cafe_table_group_id" column="cafe_table_group_id">
      <generator class="identity" />
    </id>
    <property name="cafe_table_group_name">
      <column name="cafe_table_group_name" sql-type="nvarchar" not-null="false" />
    </property>
    <property name="remarks">
      <column name="remarks" sql-type="varchar" not-null="false" />
    </property>
    <property name="is_active">
      <column name="is_active" sql-type="bit" not-null="false" />
    </property>
    <property name="group_position">
      <column name="group_position" sql-type="int" not-null="false" />
    </property>
    <property name="color">
      <column name="color" sql-type="nvarchar" not-null="false" />
    </property>
    <bag name="cafe_table">
      <key column="cafe_table_group_id" />
      <one-to-many class="cafe_table" />
    </bag>
  </class>
</hibernate-mapping>


Теперь это моя функция для сохранения группы таблиц:
using (ISession session = SessionFactory.OpenSession)
             {
                 using (ITransaction transaction = session.BeginTransaction())
                 {
                     try
                     {
                         session.Save(group);
                         transaction.Commit();
                         return "1";
                     }
                     catch (Exception ex)
                     {
                        transaction.Rollback();
                         throw new Exception("Failed to create cafe table group." + ex.Message);
                     }

                 }
             }

Моя CafeTableGroup. cs:
namespace CafePOS {
    
    public class CafeTableGroup {
        public CafeTableGroup() { }
        public decimal cafe_table_group_id { get; set; }
        public string cafe_table_group_name { get; set; }
        public string remarks { get; set; }
        public bool? is_active { get; set; }
        public int? group_position { get; set; }
        public string color { get; set; }
    }
}


Что я уже пробовал:

Я попытался изменить действие сборки на встроенный ресурс для cafe_table_group.hbm.xml файл.

elothen

Полагаю, Вы наконец-то решили эту проблему. Я испытываю ту же проблему, изучая NHibernate. Каково было ваше решение? Спасибо!

0 Ответов