[关键词]NHibernate、SQLite、MySQL
先是在Java下用了Hibernate,挺好用。正好需要用.net做一个桌面应用程序,数据存储这块自然就想到用它的.net版来做,没想到竟然碰到一堆问题, 特做此记录,留以备忘。
环境:VisualStudio2008、NHibernate2.1.2 GA、SQLite.NET(用以加载System.Data.SQLite.dll)、MySQL Connector Net 5.2.5(用以加载MySql.Data.dll)。
首先是SQLite数据库,主要问题可以参考此文:http://www.cnblogs.com/qing123/archive/2010/02/09/1666404.html
主要是配置文件的问题。(注意:报错时请留意报错信息,并展开节点查看InnerException内的具体错误,这样才最有帮助,因为很多种错误最外层报的都是“Could not compile the mapping document”,很难发现问题)
接着是MySQL数据库,也碰到两个问题,好在通过InnerException查到详细错误,网上查了一下最终解决,数据终于顺利入库~~
第一个是需要引用MySql.Data.dll,没有此文件者请到MySql官方网站下载mysql-connector-net-5.2.5.zip并安装之,即可在安装目录下找到。但仅仅引用是不行的,还需要把这个dll拷贝到项目的bin目录下,和NHibernate.dll放在一起(或者在工程里选中MySql.Data属性,把“复制本地”设置为True即可)。
第二个问题是提示“列"ReservedWord"不属于表ReservedWords”。莫名其妙,我根本没有这个列和表啊?google之,原来需要在配置文件的<session-factory>节点内,加入<property name="hbm2ddl.keywords">none</property>即可。
上述两步,MySql终于可用了,不过SQLite问题还没解决,稍候继续研究一下吧。
解决MySql问题参考自:
http://9esuluciano.javaeye.com/category/15512?show_full=true
http://www.cnblogs.com/howard-queen/archive/2009/11/24/1609753.html