错误提示:
D:\work\opensource\NHibernateTest\Customer.hbm.xml(2,4): XML validation error: 未能找到元素“urn:nhibernate-mapping-2.0:hibernate-mapping”的架构信息。基本上按照网上流行的一些教程来配置的,出现这个错误,不知道在配置中那里出了问题,很郁闷。屡试屡败。现在特需要傻瓜试教程一份。
那为大哥指教下啊!!!谢谢了。我的基本配置如下:引用基本的 dll 这个网上都一致在 Web.config 添加:<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="Server=localhost;initial catalog=Northwind;Integrated Security=SSPI"/>
</nhibernate>
我的映像 XML 文件: 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="identity" />
    </id>
    <property name="Username" 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>
然后自己写了个类,编译成 dll在Default.aspx.cs 里写操作数据库的代码,比如插入:protected void Button2_Click(object sender, EventArgs e)
    {
        NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
        cfg.AddXmlFile(Server.MapPath("Customer.hbm.xml"));
        ISession session = cfg.BuildSessionFactory().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;
        session.Save(newUser);
        transaction.Commit();
        session.Close();
    }运行,点按钮,这样就出现了 最上面的那错误。
麻烦大家帮帮忙,我刚学这个框架,也准备要用它。在这里先谢谢大家了。

解决方案 »

  1.   

    楼主别急,我毕业设计的时候搞过,不过下班了,明天找找以前的看再上来
    你为什么然后自己写了个类,编译成 dll呢?我记得以前好像要五个步骤吧,
    第一步:写构建表的SQL
    第二步:产生一个.Net 类文件
    第三步:写映射文件
    第四步:为你的数据库产生一个配置文件
    第五步:开始展现NHibernate的魔力发个链接你看看,我以前也是一步步来的,希望你成功,成功了别忘了给我分哦
    http://dev.csdn.net/Develop/article/28/63977.shtm还有,你看下你的webconfig对了没有以下是数据库为sql server 的nhibernate配置节:
      <configSections>
        <section name="nhibernate"
                 type="System.Configuration.NameValueSectionHandler, System,  Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      </configSections>
      <nhibernate>
        <add key="hibernate.show_sql"
             value="true"/>
        <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=server;Initial Catalog=schema;User ID=username;Password=password"/>
      </nhibernate> 
      

  2.   

    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
    改为
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      

  3.   

    我也正在研究,碰到如下问题:
    Could not load file or assembly 'QuickStart' or one of its dependencies. 系统找不到指定的文件。顺路问一下,怎么回事?我是用NHibernate-1.2.0.Beta2-debug版本在vs2005上研究的。完全按照上面的第一章quickstart with IIS and Microsoft SQL Server上的照搬的。
      

  4.   

    网上有些文章说把 XML 文件设置为嵌入资源,但是2005只有在 WinForm里可以设置文件为嵌入资源啊,所以前面做的是在WinForm里把xml文件做嵌入资源然后编译。再在webform里调用这个dll文件。不知道 在 wenbform里怎么设置文件为嵌入资源。
    知道的告诉我啊,谢谢了
    大家要是谁有 asp.net2.0 对这个 Nhibernate 简单的操作例子也发我啊