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