按NHibernate Quick Start Guide上所写的做了个例子,出现以下错误。请帮助解决Could not load type 'NHibernate.Examples.QuickStart.User, NHibernate.Examples', check that type and assembly names are correct

解决方案 »

  1.   

    user.hbm.xml 文件
    =========================================
    <?xml version="1.0" encoding="utf-8" ?> 
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
        <class name="NHibernate.Examples.QuickStart.User, NHibernate.Examples" table="users">
            <id name="Id" column="LogonId" type="String" length="20"> 
                <generator class="assigned" /> 
            </id> 
            <property name="UserName" column="Name" type="String" length="40"/> 
            <property name="Password" type="String" length="20"/> 
            <property name="EmailAddress" type="String" length="40"/>
            <property name="LastLogon" type="DateTime"/>
        </class>
    </hibernate-mapping>
      

  2.   

    user.cs 文件
    ===========================================================
    using System; 
    namespace NHibernate.Examples.QuickStart
    {
     public class User
     {
      private string id;
      private string userName;
      private string password;
      private string emailAddress;
      private DateTime lastLogon;
     
     
      public User()
      {
      }
     
      public string Id 
      {
       get { return id; }
       set { id = value; }
      }
     
      public string UserName 
      {
       get { return userName; }
       set { userName = value; }
      }
     
      public string Password 
      {
       get { return password; }
       set { password = value; }
      }
     
      public string EmailAddress 
      {
       get { return emailAddress; }
       set { emailAddress = value; }
      }
     
      public DateTime LastLogon 
      {
       get { return lastLogon; }
       set { lastLogon = value; }
      }
                   
     }
    }
      

  3.   

    index.aspx.cs 文件
    =======================================================================
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;using NHibernate;
    using NHibernate.Cfg;
    using NHibernate.Examples.QuickStart;namespace quickstart
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class indexForm : System.Web.UI.Page
    {
    private void Page_Load(object sender, System.EventArgs e)
    {
      // 在此处放置用户代码以初始化页面
         test_nhibernate();
    }  public void test_nhibernate()
      {
         Configuration cfg = new Configuration();     
         //cfg.AddAssembly("NHibernate.Examples");
         cfg.AddXmlFile(  System.Web.HttpContext.Current.Server.MapPath("user.hbm.xml") );     ISessionFactory factory = cfg.BuildSessionFactory();
         ISession session = factory.OpenSession();
         ITransaction transaction = session.BeginTransaction();     User newUser = new User();
         newUser.Id = "joe_cool";
         newUser.UserName = "Joseph Cool";
         newUser.Password = "abc123";
         newUser.EmailAddress = "[email protected]";
         newUser.LastLogon = DateTime.Now;     // Tell NHibernate that this object should be saved
         session.Save(newUser);     // commit all of the changes to the DB and close the ISession
         transaction.Commit();
         session.Close();
        
      } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion
    }
    }
      

  4.   

    你的实体类所在装配件名字是什么来的?是配置文件中的 NHibernate.Examples么,检查一下
      

  5.   

    nhibernate更定已引用了.另,不明白shalen所说的 实体类所在装配件名字是什么来的?是配置文件中的 NHibernate.Examples么,检查一下是不是这个user.hbm.xml 文件
    =========================================
    <?xml version="1.0" encoding="utf-8" ?> 
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
        <class name="NHibernate.Examples.QuickStart.User, NHibernate.Examples" table="users">
      

  6.   

    确定你的xml的属性-生成方式,设置成内嵌资源。还有,你的xml的位置至少应该在NHibernate.Examples空间下
      

  7.   

    我都用这个cfg.AddAssembly("NHibernate.Examples");
    很少用下面的那个
      

  8.   

    用cfg.AddAssembly("NHibernate.Examples");
    出现以下错误
    File or assembly name NHibernate.Examples, or one of its dependencies, was not found.
      

  9.   

    上面的问题已解决了, 又出现以下错误ISessionFactory vFactory     = cfg.BuildSessionFactory();Exception Details: NHibernate.InvalidProxyTypeException: Type 'NHibernate.Examples.QuickStart.User' cannot be specified as proxy: method get_Id should be virtual
      

  10.   

    老兄frame worker,报个中文错出来啊
      

  11.   

    用代码自动生成器来生成
    网络上有很多,搜一下就可以
    我用过的有飞鹰写的coolcoder1.0