自从系统使用NHibernate后,开发一直比较顺利,直到开始做报表部分才发现有问题了:NHibernate如何与现有的报表组件集成?
昨天我写了一篇《关于crystal report和NHibernate应用的一个问题》,其中提到了Crystal Report 不能直接与NHibernate的 查询结果直接绑定的问题(刚刚试过了ActiveReport for .net也不行),从目前的情况来看,只有两种途径来解决:
1、封装报表控件,在其中编写Arraylist到DataTable的转换方法,从而实现数据的绑定;
2、在报表部分,不使用NHibernate,直接使用ADO.net。
第一种方法,肯定会影响到系统的效率,特别是需要使用Reflection来得到Entity的属性值。而第二种方法,则完全避开了NHibernate,不是我们的初衷(业务层面的一些工作又需要用ADO.net实现一遍)。
综合考虑,我们目前暂时采用第二种方式,不能哪位朋友有更好的建议?
这段时间比较关心NH的朋友越来越多了, 但很少有人将其运用到系统中,其在实用中可能会遇到各式各样的问题,希望这篇文章能够起到抛砖引玉的效果,使NH的应用不断的深入下去。