NHibernate学习笔记(-)并不美好的开始

终于下决定学习NHibernate了,先从一个简单的查询开始,刚开始还以为很简单,没有想到出现的问题不少。

(1)配置文件小结(配置文件配置方法很多,这里不全面,只记录经本人测试使用的情况)

NHibernate有两种类型的配置文件,数据访问配置文件 hibernate.cfg.xml(不是必须,可以在Appconfig/WebConfig文件里配置)

 Configuration config = new Configuration().Configure();即可此访问配置文件,此配置文件的存放位置为应用程序的运行目录

WINFORM下应该和EXE文件同目录,WEB应用程序下应该处于BIN目录下,第二种配置文件即实体类映射配置文件 类名.hbm.xml,用于描述实体类

与数据库表之间的映射关系,此文件应该采用嵌入资源文件方式发布

(2)出现错误

in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query)

其实从英文大意可以猜出问题出现原因,这个问题因为我的粗心导致浪费了不少时间

首先你应当确定实体类映射文件(classname.hbm.xml)的生成方式为嵌入的资源,否则有可能

NHbernate找不到映射文件抛出异常

 IQuery query = s.CreateQuery("from Employee");

假设你的查询是类似这样,那么就应当确认 Employee是正确的,因为这个方法其实采用的NHbernate的HQL

来进行查询的,在这里Employee是跟数据库表存在映射关系的实体类名,不是数据库表名,采用SQL字串进行查询的方法是

CreateSQLQuery(),此外你还应当留心映射文件是classname.hbm.xml而不是类名.xml

 

s.CreateQuery("from Employee").list()这个返回的是非泛行的list,不是泛型的LIST,浪费我不少时间

posted @ 2008-11-09 23:51  songcan  阅读(574)  评论(1编辑  收藏  举报