2013-05-16 75 views
0

任何機構可以告訴我什麼是錯用NHibernate的命名查詢下面查詢。 當我收到錯誤 - 「錯誤命名查詢:GetSecondReviewIncomeStatements」:NHibernate的命名查詢

<sql-query name="GetSecondReviewIncomeStatements" read-only="true"> 
<![CDATA[ 
    SELECT I.TotalNetSales,I.CostOfGoodsSold,I.GrossProfit 
    FROM IncomeStatement as incomeStatement 
    INNER JOIN FETCH CompSearchResultItem as resultItem 
    ON incomeStatement.Comparable.ID = resultItem.Comparable.ID 
    AND resultItem.CompSearch.ID = :compSearchID  
    ]]>--> 
</sql-query>--> 

我已經在網上搜索了很多,有人說而不是在OnWhere。 我也試過NamedQuery,但每次遇到同樣的錯誤。

+0

你是否在使用Nhibernate存儲過程? –

+0

請分享樣品代碼,只是樣品,不要把整個代碼 –

+0

什麼是額外的 - >後]]> ?? – Rippo

回答

0

請查看命名查詢的格式在的.hbm.xml文件。

在代碼使用的hbm.xml

 <sql-query name="ShowProducts"> 
     <return alias="Product" class="Product" /> 
     exec ShowProducts 
     </sql-query> 

<sql-query name="DeleteProducts"> 
    <query-param name="Id" type="int"></query-param> 

    exec DeleteProducts @ID=:Id 
    </sql-query> 

IQuery query = (IQuery)session.GetNamedQuery("ShowProducts"); 


     var listProducts = query.List<Product>(); 

     GridView1.DataSource = listProducts; 
     GridView1.DataBind(); 
0

請問您的SQL運行,如果你把它原樣「在RDBMS中的SQL執行?

除了包含CDATA元素後奇怪的-->,我注意到你沒有在你的查詢中聲明I別名。

我的意思是,這些列前面有I ...

SELECT I.TotalNetSales,I.CostOfGoodsSold,I.GrossProfit 

...是從那裏來的?