我正在使用db方法在MVC5中使用Entity Framework.我使用Mysql作为数据库.我创建了一个过程,当Mysql中的Call Procedure它符合我的期望时.但是当我在MVC中使用过程时,它每次返回0.
存储过程
CREATE PROCEDURE `checkSeasonAvailability`(
IN paramSeasonId INT,
IN paramHotelId INT,
IN paramStartDate varchar(20),
IN paramEndDate varchar(20)
)
BEGIN
DECLARE _startDate,_endDate DATETIME;
DECLARE _hotelseasonID BIGINT(20);
DECLARE _count,_rowCount,_dateDiff INT;
DECLARE _index INT DEFAULT 1;
DECLARE i INT DEFAULT 0;
DECLARE cursorSeasonList CURSOR FOR SELECT `hotel_season_id`,`start_date`,`end_date`
FROM hotel_season_link
WHERE hotel_id = paramHotelId &&
season_id = paramSeasonId &&
active = TRUE;
OPEN cursorSeasonList;
SET _rowCount=FOUND_ROWS();
SET _count=_rowCount;
IF(_rowCount>0) THEN
Proc:WHILE _index <= _rowCount DO
FETCH cursorSeasonList INTO _hotelseasonID,_startDate,_endDate;
SET _dateDiff=datediff(paramEndDate,paramStartDate);
SET i=0;
WHILE i <= _dateDiff DO
SELECT COUNT(*) FROM hotel_season_link
WHERE
adddate(paramStartDate,i) BETWEEN _startDate AND _endDate INTO _count;
IF(_count>0) THEN
SELECT 1;
LEAVE Proc;
END IF;
SET i=i+1;
END WHILE;
SET _index=_index+1;
END WHILE;
END IF;
END
CALL checkSeasonAvailability(1,3,'-12-26 00:00:00','-12-31 00:00:00');//call in mysql
调节器
String format = "yyyy-MM-dd hh:mm:ss";
var status = db.checkSeasonAvailability(seasonId, hotelId, startDate.ToString(format), endDate.ToString(format));
当我调试我的代码时,我发现所有必需的参数发送成功,但我没有得到返回值.
如果我的代码有任何问题,请建议我.