1
私はこのようになりますストアドプロシージャがあります。Entity Frameworkの - グラブストアドプロシージャの結果
ALTER PROCEDURE [dbo].[myProc]
@sampleParam1 VARCHAR (10)
AS
DECLARE @AccountID INT
--some business logic that evaluates value of @AccountID
SELECT @AccountID --I want to grab this value in .Net application.
を私はこのような.NETを使用してこのストアドプロシージャを実行しています:
class MyResult
{
public int AccountID { get; set; }
}
public void myfun()
{
myEntitesEntites = new MyEntites();//Using EF6
var result = myEntitesEntites.Database.SqlQuery<MyResult>
("exec [dbo].[myProc] @sampleParam1", new SqlParameter("sampleParam1", "20161028"))
}
私はresult.AccountID
を期待していましたストアドプロシージャに最後のSELECT @AccountID
ステートメントの値が保持されます。しかしresult.AccountID
は常に0です。
注:私はSSMSから同じストアドプロシージャを実行していたとき、私は0
ない@AccountID
の実際の値を見ることができる私は何も足りませんか?
ありがとうございます。
ビンゴ@Alexcei Shmakov。ありがとう。 – user2243747
こんにちは、複数の列を取得するにはどうしたらいいですか?ストアドプロシージャの最後の行が 'SELECT @ Field1、@ Field2'だった場合のように?私は 'Field1'と 'Field2'という名前の2つのフィールドを持つクラスを作成する必要がありますか?私はそれをやってみたが働いていなかった。 – user2243747
あなたから提案されたようにSPを修正した後、それは機能しました!しかし、残念ながら私は既にいくつかのクライアントによって使用されているSPを変更することはできませんので、他の回避策を見つける必要があります。ご協力いただきありがとうございます。 – user2243747