0

我有一個存儲過程返回的參數包含字符串它,我不知道該怎麼稱呼它,並得到輸出參數上顯示我的看法如何調用存儲過程EF6與輸出參數

ALTER PROCEDURE [dbo].[sp_test] 
@room_type varchar(40) 
,@room_price_min float 
,@room_price_max float 
,@room_number varchar(30) 
,@new varchar(50) output 
as 
; 
--select @room_no 
if exists(select room_number from Rooms_ms where [email protected]_number) 
begin 
    set @new='Room Already Exists' 
    select @new 
    return 
end 

insert into Rooms_ms(room_type,room_price_min,room_price_max,room_number) values 
(@room_type,@room_price_min,@room_price_max,@room_number) 

set @new='Successfully' 
select @new 
return 

我試圖像下面看到它,但不知道如何完全做到這一點。

var result= db.sp_test(a, b, 0, c); 

謝謝

回答

1

您可以實現以下檢索數據的存儲過程調用

using(var db = new iConext()) 
{ 
    var details = db.Database.SqlQuery<iType>("exec iProc @param", new SqlParameter("@param", iValue)); 
} 
  • 之一iType是int或字符串或long或可以是的ComplexType
  • @param是一個或多個必需參數
  • iContext是你的數據庫連接
0

這是樣品我的代碼

string sql = string.Format("exec sp_MyTest '" + methods.DateTimeFormat(vmodel.Search.FDate, false, 1) + "','" + methods.DateTimeFormat(vmodel.Search.TDate, false, 1) + "','" + vmodel.Search.LocationId + "',"+ 0"'"); 

var result = db.(DbSetName(like.Students))SqlQuery(sql).ToString(); 

if Return List, then 
    var result = db.(DbSetName(like.Students))SqlQuery(sql).ToList();