2012-09-03 109 views
1

我有一個我喜歡用於LINQ to SQL的存儲過程。我把它添加到dbml就好了,並設法調用它,但然後奇怪的東西發生。我得到「無法找到任何一列」MySchema「或用戶定義的函數或聚合」MySchema.pi_MyStoredProcedure「,或名稱不明確。」 -錯誤。試圖找出爲什麼會發生這種情況,因爲我可以從SSMS執行proc。 SQL事件探查器設法抓住查詢,它是這樣的:LINQ to SQL在調用我的存儲過程時使用CONVERT

exec sp_executesql N'SELECT CONVERT(Int,[MySchema].[pi_MyStoredProcedure](@p0)) AS [value]',N'@p0 nvarchar(4000)',@p0=N'ParameterValue' 

我得到相同的「找不到......」誤差從SSMS當我嘗試執行此。我懷疑這可能與我的存儲過程的返回類型有關。我必須在.dbml XML代碼中手動設置它。看起來像這樣:

<Function Name="MySchema.pi_MyStoredProcedure" Method="pi_MyStoredProcedure" IsComposable="true"> 
    <Parameter Name="MyParameter" Type="System.String" DbType="NVarChar(512)" /> 
    <Return Type="System.Int32" /> 
</Function> 

我在做什麼錯在這裏?我設法找到的每個在線教程都告訴我這樣做,但顯然還有其他一些我錯過的東西?它是什麼?

回答

1

我試圖通過更改存儲過程來使用OUTPUT參數而不是RETURN來解決此問題。

相關問題