NHibernate ISession.Query<;T>;在Mono/NUnit中引发异常

NHibernate ISession.Query<;T>;在Mono/NUnit中引发异常,nhibernate,fluent-nhibernate,mono,nunit,Nhibernate,Fluent Nhibernate,Mono,Nunit,我正试图在Mono/openSUSE 11.4中启动并运行我的第一个NHibernate项目。我的单元测试在Windows下成功运行,但是当我尝试在Mono上运行相同的测试时,当我尝试从我的NHibernate会话中获取查询对象时,我遇到了一个异常 通过NHibernate保存数据似乎工作正常 我正在使用Mono 2.10.2和NUnit 2.4.8版,其中Fluent NHibernate 1.2用于NHibernate 3.1 我已经包含了nunit控制台的完整输出,以防万一: >NU

我正试图在Mono/openSUSE 11.4中启动并运行我的第一个NHibernate项目。我的单元测试在Windows下成功运行,但是当我尝试在Mono上运行相同的测试时,当我尝试从我的NHibernate会话中获取查询对象时,我遇到了一个异常

通过NHibernate保存数据似乎工作正常

我正在使用Mono 2.10.2和NUnit 2.4.8版,其中Fluent NHibernate 1.2用于NHibernate 3.1

我已经包含了nunit控制台的完整输出,以防万一:

>NUnit version 2.4.8
>Copyright (C) 2002-2007 Charlie Poole.
>Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
>Copyright (C) 2000-2002 Philip Craig.
>All Rights Reserved.
>    
>Runtime Environment -
>OS Version: Unix 2.6.37.1
>CLR Version: 4.0.30319.1 ( 2.10.2 (tarball Mon Apr 18 15:12:52 UTC 2011) )
>    
>.F
>Tests run: 1, Failures: 1, Not run: 0, Time: 1.563 seconds
>    
>Test Case Failures:
>1) MyTests.MyTest : System.TypeInitializationException : An exception was thrown by the type initializer for NHibernate.Linq.NhRelinqQueryParser
>----> System.Reflection.ReflectionTypeLoadException : The classes in the module cannot be loaded.
>at NHibernate.Linq.NhLinqExpression.Translate (ISessionFactoryImplementor sessionFactory) [0x00000] in <filename unknown>:0
>at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators (System.String queryIdentifier, IQueryExpression queryExpression, System.String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory) [0x00000] in <filename unknown>:0
>at NHibernate.Engine.Query.HQLExpressionQueryPlan.CreateTranslators (System.String expressionStr, IQueryExpression queryExpression, System.String collectionRole, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) [0x00000] in <filename unknown>:0
>at NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor (System.String expressionStr, IQueryExpression queryExpression, System.String collectionRole, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) [0x00000] in <filename unknown>:0
>at NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor (System.String expressionStr, IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) [0x00000] in <filename unknown>:0
>at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan (IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters) [0x00000] in <filename unknown>:0
>at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan (IQueryExpression queryExpression, Boolean shallow) [0x00000] in <filename unknown>:0
>at NHibernate.Impl.AbstractSessionImpl.CreateQuery (IQueryExpression queryExpression) [0x00000] in <filename unknown>:0
>at NHibernate.Linq.NhQueryProvider.PrepareQuery (System.Linq.Expressions.Expression expression, IQuery& query, NHibernate.Linq.NhLinqExpression& nhQuery) [0x00000] in <filename unknown>:0
>at NHibernate.Linq.NhQueryProvider.Execute (System.Linq.Expressions.Expression expression) [0x00000] in <filename unknown>:0
>at NHibernate.Linq.NhQueryProvider.Execute[IEnumerable`1] (System.Linq.Expressions.Expression expression) [0x00000] in <filename unknown>:0
>at Remotion.Data.Linq.QueryableBase`1[MyProject.Entities.Email].GetEnumerator () [0x00000] in <filename unknown>:0
>at System.Collections.Generic.List`1[MyProject.Entities.Email].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in /usr/src/packages/BUILD/mono-2.10.2/mcs/class/corlib/System.Collections.Generic/List.cs:126
>at System.Collections.Generic.List`1[MyProject.Entities.Email]..ctor (IEnumerable`1 collection) [0x0002f] in /usr/src/packages/BUILD/mono-2.10.2/mcs/class/corlib/System.Collections.Generic/List.cs:63
>at System.Linq.Enumerable.ToList[Email] (IEnumerable`1 source) [0x00006] in /usr/src/packages/BUILD/mono-2.10.2/mcs/class/System.Core/System.Linq/Enumerable.cs:2847
>at MyTests.MyTest () [0x0000c] in /tmp/source/MyTests/MyTest.cs:125
>at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
>at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x000d5] in /usr/src/packages/BUILD/mono-2.10.2/mcs/class/corlib/System.Reflection/MonoMethod.cs:226
>--ReflectionTypeLoadException
>at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (System.Reflection.Assembly,bool)
>at System.Reflection.Assembly.GetTypes () [0x00000] in /usr/src/packages/BUILD/mono-2.10.2/mcs/class/corlib/System.Reflection/Assembly.cs:346
>at Remotion.Data.Linq.Parsing.Structure.ExpressionTreeParser.CreateDefaultNodeTypeProvider () [0x00000] in <filename unknown>:0
>at NHibernate.Linq.NHibernateNodeTypeProvider..ctor () [0x00000] in <filename unknown>:0
>at NHibernate.Linq.NhRelinqQueryParser..cctor () [0x00000] in <filename unknown>:0
/tmp/source/MyTests/NHibernate.dll,类型 System.ServiceModel.OperationContext [System.ServiceModel]System.ServiceModel.OperationContext::get_Current() IL_0005:callvirt在程序集中缺少方法get_扩展 /tmp/source/MyTests/NHibernate.dll,类型 System.ServiceModel.OperationContext实例 [System.ServiceModel]System.ServiceModel.OperationContext::get_Extensions() IL_000a:在程序集中找到callvirt缺少方法 /tmp/source/MyTests/NHibernate.dll,缺少类型规范0x1B0017E 方法在assembly/tmp/source/MyTests/NHibernate.dll中找到,类型为 类型规格0x1B0017E *get.c:2097处的断言,条件'mh'未满足

流产

单v



我放弃了,用NHibernate.Linq-2.1.2-GA安装了Fluent NHibernate 1.1。在我的单元测试中,所有人似乎都很高兴,但我仍在试图找出当前版本的问题所在。

是否所有引用“CopyLocal”的库都设置为true?若有,详情为何?

/path/to/mono/monodis <DLLNAME>
/path/to/mono/monodis
在bin目录中,可能有助于确定它们是否是有效的程序集:()


我在处理不符合CLS的类时看到了这一点(在mono和fluent NHibernate的旧版本上),但在这种情况下,它能够加载程序集以使用其他类(虽然我没有使用反射加载)。

是否所有库都引用了“CopyLocal”设置为true?若有,详情为何?

/path/to/mono/monodis <DLLNAME>
/path/to/mono/monodis
在bin目录中,可能有助于确定它们是否是有效的程序集:()


在处理不符合CLS的类时,我看到了这一点(在mono和fluent NHibernate的旧版本上),但在这种情况下,它能够加载程序集以使用其他类(尽管我没有加载反射)


未在我的系统上安装mono wcf软件包。NHibernate 3.2需要WCF。现在我已经安装好了,一切都很好

我回过头来使用NHibernate 2.1.2和附加的Linq库,该库工作得很好,但前几天我再次访问了它,我发现修复程序非常简单


未在我的系统上安装mono wcf软件包。NHibernate 3.2需要WCF。现在我已经安装好了,一切都很好

当我对NHibernate.dllHmm运行它时,我从monodis得到了一个退出代码134,我下载了3.1,它似乎可以很好地分解它。你确定你的路径设置正确吗?“mono-V”在控制台上打印什么?mono JIT编译器版本2.10.2(tarball Mon Apr 18 15:12:52 UTC 2011)版权所有(C)2002-2011 Novell,Inc.和贡献者。www.mono-project.com TLS:uu thread SIGSEGV:altstack Notifications:epoll架构:amd64 Disabled:none Misc:debugger softdebug LLVM:yes(2.9svn-mono)GC:Included Boehm(带类型化GC和并行标记)Hmm,几乎和我的设置一样,只是我没有启用LLVM。我会看看我是否能蒙混过关,然后把它弄坏:)你在使用从NH网站下载的最新二进制文件吗?从Fluent NHibernate网站(1.2)下载的最新二进制文件。当我对NHibernate.dllHmm运行monodis时,我从monodis获得了一个退出代码134,我下载了3.1,它似乎可以很好地进行反汇编。你确定你的路径设置正确吗?“mono-V”在控制台上打印什么?mono JIT编译器版本2.10.2(tarball Mon Apr 18 15:12:52 UTC 2011)版权所有(C)2002-2011 Novell,Inc.和贡献者。www.mono-project.com TLS:uu thread SIGSEGV:altstack Notifications:epoll架构:amd64 Disabled:none Misc:debugger softdebug LLVM:yes(2.9svn-mono)GC:Included Boehm(带类型化GC和并行标记)Hmm,几乎和我的设置一样,只是我没有启用LLVM。我会看看我是否可以蒙混过关,然后把它弄坏:)你使用的是从NH网站下载的最新二进制文件吗?最新的二进制文件来自Fluent NHibernate网站(1.2)。
/path/to/mono/monodis <DLLNAME>