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

4
ISessionFactory factory = cfg.BuildSessionFactory();5
ISession session = factory.OpenSession();6
ITransaction transaction = session.BeginTransaction();7

8
User newUser = new User();9
newUser.Id = 1;10
newUser.UserName = "nicole";11
newUser.Password = "abc123";12
session.Save(newUser);13
transaction.Commit();14
session.Close();好像是没有映射好。
将第二行的代码换成:
cfg.AddXmlFile("NhibernateTest.User.hbm.xml");
cfg.AddClass(typeof(User));文档说AddAssembly会把所有.hbm.xml文件都加载,为什么不行?
AddClass方法的话是在什么地方寻找相对于的.hbm.xml文件呢?
浙公网安备 33010602011771号