EF框架呼叫儲存過程

2021-09-30 12:08:22 字數 1728 閱讀 1902

新到的公司專案用ef+mvc,開始接觸,遇到很多挫折,由於資料庫設計原因,很多地方都要用檢視、儲存過程來實現一些需求。

呼叫儲存過程遇到了好多問題,這邊記錄一下幾種呼叫方式,及遇到的問題的解決方式。

儲存過程:

alter procedure sp_name(

@param1 int,

@param2 int,

@param3 bit output,

@param4 nvarchar(50) output 

)as 

begin

end一、var entities = new dataentities();

var param1 =0;

var param2 =1;

var param3 = new objectparameter("param3 ", dbtype.boolean);

var param4 = new objectparameter("param4 ", typeof(string));

entities.sp_name(param1, param2 , param3 , param4 );

二、sqlparameter param =;

param[0].value = 0;

param[1].value = 0;

param[2].direction = parameterdirection.output;

param[3].direction = parameterdirection.output;

var results = db.database.sqlquery(

"sp_name@param1 ,@param2 ,@param3 out,@param4 out",

param[0], param[1],param[2],param[3]);

或者   var results = db.database.executesqlcommand(

"sp_name@param1 ,@param2 ,@param3 out,@param4 out",

param[0], param[1],param[2],param[3]);

這樣同樣不行,因為後來發現上面的方式可以了就沒有再深究具體什麼原因不行。

以上是主要執行插入或者刪除之類操作的儲存過程,那麼查詢資料怎麼獲取到查到到的資料呢?

儲存過程:

alter procedure sp_name 

@param1 varchar(50),

@param2 int output

asbegin

select * from tb_name

end**:

var db = new dataentities();

sqlparameter param =;

param[0].value = id;

param[1].direction = parameterdirection.output;

var results = db.database.sqlquery(

"sp_membermanager @id,@reval out",

param[0], param[1]);

param2= convert.toint32(param[1].value);

ilistinfolist = new list();

if (reval == 0)

剛開始接觸,僅僅記錄一下,有什麼不對的請多指教!

EF 呼叫儲存過程

1.執行返回表型別的儲存過程 主表從表資料一起關聯查詢 alter proc dbo getcategory cidint asbegin select fromcategories where cid cid end 執行此儲存過程的 如下 public ienumerablegetcategor...

EF呼叫儲存過程

1 無引數查詢 var model db.database.sqlquery select from userinfoes tolist 2 有參查詢 var model db.database.sqlquery select from userinfoes where id id new sqlp...

ef mysql 儲存過程 EF 儲存過程

one 理論 a 定義 儲存過程 stored procedure 是一組為了完成特定功能的sql語句集合,經編譯後儲存在伺服器端的資料庫中,利用儲存過程可以加速sql語句的執行。儲存過程分為系統儲存過程和自定義儲存過程。1.系統儲存過程在master資料庫中,但是在其他的資料庫中可以直接呼叫,並且...