0

プロジェクトで Nhibernate を実行しようとしましたが、以下の「No persister for: web.BackEndModel.TeamDetailsDb」という 1 つのエラーが解決策の探索です。

私のプロジェクト階層

ソリューション: NhibernateClient

プロジェクト: ウェブ

folder : BackEndModel

  File : TeamDetailsDb.cs

folder : Controller

folder : model

folder : view

ファイル: web.hbm.xml

これは、データを保存するために使用したコードです

NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
            cfg.SetProperty("dialect", "NHibernate.Dialect.MySQLDialect");
            cfg.SetProperty("connection.driver_class", "NHibernate.Driver.SqlClientDriver");
            cfg.SetProperty("connection.connection_string", "Data Source=.;Initial Catalog=OPLsite;Integrated Security=True");
            //cfg.SetProperty("proxyfactory.factory_class", "NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu");
           // cfg.AddAssembly("");
            ISessionFactory sessionFactory = cfg.BuildSessionFactory();
            ISession session = sessionFactory.OpenSession();
            ITransaction transaction = session.BeginTransaction();



            TeamDetailsDb command = new TeamDetailsDb();
            command.OwnerName = collection["OwnerName"];
            command.TeamName = collection["TeamName"];
            session.Save(command);
            transaction.Commit();
            session.Close();

これは私の web.hbm.xml です

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="web.BackEndModel.TeamDetailsDb"
                   assembly="web">

  <class name="TeamDetailsDb" table="TeamDetails">
    <id name="id" column="id" type="int">
      <generator class="identity"></generator>
    </id>
    <property name="OwnerName"  column="OwnerName" type="String"/>
    <property name="TeamName"   column="TeamName"  type="String"/>
    <mapping resource="web.hbm.xml" assembly="web" />
  </class>
</hibernate-mapping>

これは私のWeb設定ファイルです..

     <configSections>
    <section  name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </configSections>

  <nhibernate>
    <add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
    <add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
    <add key="hibernate.connection.connection_string" value="Data Source=myServer;Initial Catalog=myDatabase;Persist Security Info=True;" />
  </nhibernate>

私のチーム詳細Db.cs

私はこれに非常に慣れていません。これについて私を助けてください、pls becoz私は時間がなくなっています....

4

1 に答える 1

0

はい、ありがとうございました。動作しない理由がわかりました。変更しました

cfg.SetProperty("dialect", "NHibernate.Dialect.MySQLDialect");

cfg.SetProperty("dialect", "NHibernate.Dialect.MsSql2008Dialect");

また、Web.hbm.xmlTeamDetailsDb.hbm.xmlに変更しました

今私のTeamDetailsDb.hbm.xmlは

    <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="web.BackEndModel"
                   assembly="web">

  <class name="TeamDetailsDb" table="TeamDetails">
    <id name="id" column="id" type="int">
      <generator class="identity"></generator>
    </id>
    <property name="OwnerName"  column="OwnerName" type="String"/>
    <property name="TeamName"   column="TeamName"  type="String"/>

  </class>
</hibernate-mapping>
于 2012-05-17T05:30:29.480 に答える