今天下来NHibernate1.0.2.0,参照Examples自己写写。
dll引用,配置文件,映射类,映射文件都OK。
主要代码如下:
 1NHibernate 配置方式Configuration cfg = new Configuration();
 2NHibernate 配置方式cfg.AddAssembly("NhibernateTest");
 3NHibernate 配置方式
 4NHibernate 配置方式ISessionFactory factory = cfg.BuildSessionFactory();
 5NHibernate 配置方式ISession session = factory.OpenSession();
 6NHibernate 配置方式ITransaction transaction = session.BeginTransaction();
 7NHibernate 配置方式
 8NHibernate 配置方式User newUser = new User();
 9NHibernate 配置方式newUser.Id = 1;
10NHibernate 配置方式newUser.UserName = "nicole";
11NHibernate 配置方式newUser.Password = "abc123";
12NHibernate 配置方式session.Save(newUser);
13NHibernate 配置方式transaction.Commit();
14NHibernate 配置方式session.Close();
执行到第12行代出错: Unknown entity class: NhibernateTest.User
好像是没有映射好。
将第二行的代码换成:
NHibernate 配置方式cfg.AddXmlFile("NhibernateTest.User.hbm.xml");
就可以了。换成:
NHibernate 配置方式cfg.AddClass(typeof(User));
也不行,错误为:Resource: NhibernateTest.User.hbm.xml not found。“NhibernateTest.User.hbm.xml ”文件放在bin下或者项目根目录都没用。
文档说AddAssembly会把所有.hbm.xml文件都加载,为什么不行?
AddClass方法的话是在什么地方寻找相对于的.hbm.xml文件呢?

相关文章: