我在使用Fluent nHibernate时遇到了一些麻烦。我在表格中添加了一列,我想我已经正确地更改了映射和连接的数据对象,以正确反映这一点。然而,当我试图运行我的应用程序再次我一直得到这个错误:如何调试Fluent nHibernate
System.Data.SqlClient.SqlException: Invalid column name 'Workflow_id'.
我实在看不出有什么问题是与我就做了改变,所以我恢复到映射的原始版本和来自源代码管理的数据对象文件,并从数据库中删除违规列。但是我仍然遇到同样的错误。
我想就如何调试这一点的建议。获取错误报告的SQL是无稽之谈:
SELECT regions0_.Page_id as Page5_1_, regions0_.Id as Id1_, regions0_.Id as Id27_0_, regions0_.RegionId as RegionId27_0_, regions0_.RegionTemplate_id as RegionTe3_27_0_, regions0_.Workflow_id as Workflow4_27_0_ FROM [Region] regions0_ WHERE regions0_.Page_id=?
而且它不会作为有效的SQL执行。
任何有关从哪里出发的想法?
感谢您的回复 - 这里有很多有用的东西。 然而,它看起来好像问题的根源要简单得多 - 看起来nHibernate在Web服务器上缓存了很多东西,我不知道 - 我假设它每次都重建了它的所有底层结构。停止/启动服务器实例解决了无代码更改的问题。 – 2010-06-08 11:55:09
我们还有一个单元测试,它在运行unite之前创建CI服务器上的数据库,另一个用于创建数据库的虚拟数据库用于手动测试。 也有其他unittest女巫告诉我们,如果数据库匹配的映射 – isuruceanu 2010-06-08 12:05:18