簡體   English   中英

EF 6 在使用 Database.SqlQuery 調用存儲過程時省略可選參數

[英]EF 6 omit optional parameters when calling a stored procedure using Database.SqlQuery

我試圖調用僅包含可選參數子集的存儲過程,但看起來我必須包含所有參數才能使 Database.SqlQuery 正常運行。 是這種情況,還是有一種解決方法可以讓我只需要傳遞我關心的參數?

我基本上是在嘗試執行以下操作,其中存儲過程有許多輸入參數,其中一些是可選的。 我希望能夠調用該過程並且只傳遞我需要的參數。

CREATE PROCEDURE [dbo].[SP_MySP] 
    @One INT, 
    @Two INT = NULL,
    @Three INT,
    @Four INT = NULL ...

var paramOne = new SqlParameter("@One", firstValue);
var paramThree = new SqlParameter("@Three", thirdValue);
var paramFour = new SqlParameter("@Four", fourthValue);

var result = DataContext.Database.SqlQuery<MySPEntity>("EXEC SP_MySP @One,  @Three, @Four"
, paramOne, paramThree, paraFour).ToList();

return result;

我知道這是舊的,因為沒有人回答我想我會回答以防萬一有人遇到這個問題。 要傳遞可選參數,您必須在查詢中指定 SQL 參數名稱。 拿你的代碼你需要這樣做

var result = DataContext.Database.SqlQuery("EXEC SP_MySP @One=@one, @Three=@Three, @Four=@Four" , paramOne, paramThree, paramFour).ToList(); 這就是我讓它在我的代碼中工作的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM