1
DB 접근 방식을 통해 Entity Framework MVC5에서 작업 중입니다. 데이터베이스로 MySQL을 사용합니다. 내가 프로 시저를 만들 때 호출 절차 내 기대대로 작동합니다. 내가 MVC에서 절차를 사용하지만 그것은스토어 프로 시저가 MVC5에서 값을 반환하지 않습니다.
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,'2014-12-26 00:00:00','2014-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));
난 내 코드를 디버깅 할 때 내가 필요한 모든 매개 변수가 성공적으로 보내 찾을 때마다 0
저장 프로 시저를 반환 그러나 나는 반환 가치를 얻지 않았다. 내 코드에 문제가 있으면 제게 제안하십시오.
확인이 능숙 아웃 : http://sunali.com/2012/10/10/querying-mysql-using-entity-framework-and-mysql-stored-procedures/ HTTP ://stackoverflow.com/questions/1011062/using-the-entity-framework-with-a-mysql-db-and-the-model-designer-doesnt-pickup – MichaelCleverly
감사합니다. @MichaelCleverly – Anjyr