2012-05-15 61 views
0

我試圖在我的項目中運行Nhibernate,但它通過一個錯誤「沒有persister for:web.BackEndModel.TeamDetailsDb」是我的解決方案探索。錯誤:沒有persister爲:web.BackEndModel.TeamDetailsDb

我的項目層次

解決方案: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> 

,這是我的網絡配置文件..

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

我teamDetailsDb.cs

我很新對此,請在此幫助我,請原諒我因爲時間不夠所以......

回答

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> 
相關問題