首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > VB.NET > NHibernate初学问题总结一
【标  题】:NHibernate初学问题总结一
【关键字】:NHibernate
【来  源】:http://www.cnblogs.com/goody9807/archive/2006/09/05/495117.html

NHibernate初学问题总结一

昨天刚开始研究NHibernate就遇到了一个问题,在这里非常感谢 DDL,是他帮了我很大忙!

起初先DDL的NHibernate快速起步一文,然后下载了文章中的范例,自己小试了一把,然后写了一个Console程序,调用DDL类中的方法没问题,由于没装2005所以没打开工程,只是看看里面的代码。后来自己写了一个
测试类,按照DDL测试类中的写法就是不行总是报不能找到实体类User,后来和DDL聊天过程中发现了需要把实体类的配置文件User.hbm.xml加载进来,然后自己又多写了一句话

cfg.AddXmlFile("Goody9807.NhibernateTest.User.hbm.xml"); 才可以通过,但为什么DDL的方法就没问题呢?

后来才发现他是在程序中配置的,需要把xml文件设置为嵌入资源,如图所示:






而自己的写法是另一种方式
我的代码是:

 1using System;
 2
 3using NHibernate;
 4using NHibernate.Cfg;
 5using NUnit.Framework;
 6
 7namespace Goody9807.NhibernateTest
 8{
 9    /// <summary>
10    /// Summary description for MyTestNH.
11    /// </summary>

12    public class MyTestNH
13    {
14        public MyTestNH()
15        {
16            //
17            // TODO: Add constructor logic here
18            //
19        }

20        
21        public void AddUser()
22        {
23            Goody9807.NhibernateTest.User u =new Goody9807.NhibernateTest.User() ;
24            
25            try
26            {
27                Configuration cfg = new Configuration().Configure();
28                //cfg.AddXmlFile("Goody9807.NhibernateTest.User.hbm.xml");
29                ISessionFactory factory =cfg.BuildSessionFactory() ;
30                ISession session=factory.OpenSession();
31                
32                u.Email ="Goody9807@sina.com";
33                u.UserName ="Goody9807";
34                u.Password ="888";
35                session.Save(u) ;    
36            }

37            catch(HibernateException e)
38            {
39                Console.WriteLine(e.ToString()) ;
40
41            }

42            finally
43            {
44            
45            }

46            
47
48        }

49    }

50}

51


另外文档上写得有些不明白


一个(某些时候更好的)方法是让NHibernate自行用GetManifestResourceStream()来装载映射文件

Configuration cfg = new Configuration()
.AddClass( typeof(NHibernate.Auction.Item) )
.AddClass( typeof(NHibernate.Auction.Bid) );
好像也不行,为什么?

NHibernate 就会在这些类型的程序集的嵌入的资源中寻找叫做NHibernate.Auction.Item.hbm.xmlNHibernate.Auction.Bid.hbm.xml的映射文件。这种方法取消了所有对文件名的硬编码。

另外一个(可能是最好的)方法是让NHibernate读取一个程序集中所有的配置文件:

Configuration cfg = new Configuration()
.AddAssembly( "NHibernate.Auction" );

这个有什么用?

兄弟刚开始学习NHibernate,所以有什么东西不对,还需指教,希望能和大家交流!

ThickBox在ASP.NET中的应用:【上一篇】
从清理目录想到的:【下一篇】
【相关文章】
  • 在Castle ActiveRecord中使用NHibernate
  • NHibernate中Session的处理
  • 关于NHibernate,想说几句
  • NHibernate 系列研究[二]
  • nhibernate source code analyzed (abstract classes in nhibernate-2.0)
  • NHibernate 系列研究[一]
  • NHibernate的关联映射(one-to-one,one-to-many,many-to-many)以及cascade分析
  • NHibernate的调试技巧和Log4Net配置
  • NHibernate的数据库连接机制分析和如何使用外部连接
  • NHibernate的Session管理
  • 【随机文章】
  • ASP系列讲座(二十)维护 ASP 应用程序的安全
  • Hibernate 处理 一对多 关联
  • Windows 2000 安装全接触
  • 非Access数据库在VB中的编程及应用
  • 宽带流媒体技术及其在有线电视网络中的实现(2)
  • JAVA新技术-JSP
  • 一段能够下载文件的源代码
  • 我是怎么进入他人计算机的(1)
  • 时代互联虚拟主机,支持ASP空间,ASP.NET空间,JAVA空间,JSP空间,PHP空间
  • TCP/IP协议新手入门学习(组图)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.