亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在存儲過程中使用DbContext.Database.SqlQuery<TElement>

如何在存儲過程中使用DbContext.Database.SqlQuery<TElement>

喵喵時光機 2019-07-16 18:10:00
如何在存儲過程中使用DbContext.Database.SqlQuery<TElement>(SQL,params)?EF規范第一條CTP 5我有一個具有三個參數的存儲過程,我一直試圖使用以下方法返回結果:context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);一開始我試著用SqlParameter對象,但這不起作用,并拋出了一個SqlException帶著以下信息:過程或函數“mySpName”期望參數‘@parp 1’,該參數沒有提供。那么,我的問題是,如何在需要參數的存儲過程中使用此方法?謝謝。
查看完整描述

3 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

您應該以下方式提供Sql參數實例:

context.Database.SqlQuery<myEntityType>(
    "mySpName @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3));


查看完整回答
反對 回復 2019-07-16
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

此外,還可以使用“SQL”參數作為格式說明符:

context.Database.SqlQuery<MyEntityType>("mySpName @param1 = {0}", param1)


查看完整回答
反對 回復 2019-07-16
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

此解決方案(僅適用于SQLServer 2005)

你們是救生者,但正如@DanMork所說,你們需要加入高管。把我絆倒的是:

  • 在proc名稱之前的“EXEC”
  • 副詞之間的逗號
  • 刪除Param定義上的“@”(但不確定該位是必需的)。

:

context.Database.SqlQuery<EntityType>(
    "EXEC ProcName @param1, @param2", 
    new SqlParameter("param1", param1), 
    new SqlParameter("param2", param2));


查看完整回答
反對 回復 2019-07-16
  • 3 回答
  • 0 關注
  • 1995 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號