我有几个报告对象,如下所示:BaseReport,ChildReport1,ChildReport2和ChildReport3。报告可以实现IComplexParameterSupport接口。 ChildReport1,2和3都继承自BaseReport。
我的逻辑如下
在某些情况下,当我知道报告实现了IComplexParameterSupport时,当我进行转换时,报表对象保持为空。这就像NHibernate的背景已经丢失。
if(report as IComplexParameterisedSupport != null) { // logic here }
只有在我之前使用Parallel.ForEach时,即在STEP 2上,才会发生这种情况。我在.NET 4.0上使用Web应用程序。是否有人在并行和NHibernate上下文会话中遇到类似的问题?
答案 0 :(得分:1)
这是否意味着多个线程可以同时访问会话? 如果是这样,这就是问题,因为NHibernate的Session不是线程安全的。 见NHibernate thread safety with session