秋哥

博客园 首页 联系 订阅 管理
1,Test 'M:XXXX.can_get_all' failed: The type initializer for 'XXXX.DAL.NHibernateSession' threw an exception.
System.TypeInitializationException: The type initializer for 'XXXX.DAL.NHibernateSession' threw an exception. ---> NHibernate.MappingException: Could not compile the mapping document: XXXX.OperationOrganize.hbm.xml ---> NHibernate.MappingException: persistent class SMS.Online.Model.OperationOrganize, XXXX.Model.dll not found ---> System.IO.FileNotFoundException: Could not load file or assembly 'XXXX.Model.dll' or one of its dependencies. The system cannot find the file specified.
File name: 'XXXX.Model.dll'

原因是 画蛇添足 OperationOrganize.hbm.xml 的assembly多加了个dll,<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"   namespace="XXXX.Model"  assembly="XXXX.Model.dll" >

 

2, Test 'M:XXXX.Tests.OrgTest.can_get_all' failed: could not execute query

[ exec usp_OperationOrganizeGetByManageID @p0 ]
  Name:OrgManageID - Value:506
[SQL: exec usp_OperationOrganizeGetByManageID @p0]
NHibernate.Exceptions.GenericADOException: could not execute query
[ exec usp_OperationOrganizeGetByManageID @p0 ]
 Name:OrgManageID - Value:506
[SQL: exec usp_OperationOrganizeGetByManageID @p0] ---> System.IndexOutOfRangeException: Sys_ID
at System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName)
at System.Data.SqlClient.SqlDataReader.GetOrdinal(String name)
at NHibernate.Driver.NHybridDataReader.GetOrdinal(String name)

原因是 连的数据库不对,存储过程exec usp_OperationOrganizeGetByManageID版本不一样。

 

3, Could not load type XXXX.Model.PaymentAccountGenerateLog. Possible cause: no assembly name specified.

原因:有命名查询的时候应该这样设置hibernate-mapping节点。

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   namespace="XXXX.Model"
                   assembly="XXXX.Model" >
  <class name="PayGenLog" table="tbl_Payment_Account_Generate_Log" lazy="true">

...

</class>

 <sql-query name="GenerateLogGetByDate">

....

/sql-query>

</hibernate-mapping>

而不是类名和程序集名都放在class节点。

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
 <class name="XXXX.Model.PayGenLog,XXXX.Model" table="tbl_Payment_Account_Generate_Log" lazy="true">

...

</class>

<sql-query name="GenerateLogGetByDate">

....

/sql-query>

</hibernate-mapping>

 

posted on 2012-03-02 13:57  秋哥  阅读(837)  评论(0)    收藏  举报