由于需要测试数据库的连通性,测试项目使用了“方便”的ACCESS来作为后台数据库,但由于它太“方便”了,以致于半天的时间都葬送在了它隐藏的关键字上...
项目使用了NHibernate来作为数据库中间层,并使用NUnit进行单元测试。可当我配置好所有模型类及配置文件之后,测试环境竟然抛出了这个错误:
NHibernate.HibernateException : 字段定义语法错误。
----> System.Data.OleDb.OleDbException : 字段定义语法错误。
遂上网搜索,初步判断为ACCESS关键字冲突,由于以前的项目由于数据库关键字冲突出现过此类问题,所以模型设计过程中已经注意并避开了它,但是,貌似有漏网之鱼,于是又搜出ACCESS的关键字列表,一个字段一个字段对比,未发现任何冲突。
无奈中只能拿出最后一招,一个字段一个字段的进行修改,最后在N个小时之后,发现了一个关键字列表中不存在的关键字:Position
至于结论,我不想再对ACCESS做什么评论,只能说,我用ACCESS我活该...
……