LINQtoSQLで使用したいストアドプロシージャがあります。私はそれをdbmlにうまく追加して、なんとかそれを呼び出すことができましたが、それから奇妙なことが起こります。「列「MySchema」またはユーザー定義関数を見つけることができないか、「MySchema.pi_MyStoredProcedure」を集約するか、名前があいまいです。」というメッセージが表示されます。-エラー。SSMSからprocを正常に実行できるため、なぜこれが発生しているのかを理解しようとしました。SQL Profilerはなんとかクエリをキャッチし、次のようになりました。
exec sp_executesql N'SELECT CONVERT(Int,[MySchema].[pi_MyStoredProcedure](@p0)) AS [value]',N'@p0 nvarchar(4000)',@p0=N'ParameterValue'
これを実行しようとすると、SSMSから同じ「見つかりません...」エラーが発生します。これは、ストアドプロシージャのリターンタイプと関係があるのではないかと思います。.dbmlXMLコードで手動で設定する必要がありました。これは次のようになります。
<Function Name="MySchema.pi_MyStoredProcedure" Method="pi_MyStoredProcedure" IsComposable="true">
<Parameter Name="MyParameter" Type="System.String" DbType="NVarChar(512)" />
<Return Type="System.Int32" />
</Function>
私はここで何が間違っているのですか?私が見つけたすべてのオンラインチュートリアルは、これを行うように私に言っていますが、明らかに私が見逃している何かがありますか?それは何ですか?