나는 다음과 같은 저장 프로 시저가 있습니다문제 : 매개 변수는 제공되지 기대한다
CREATEA PROCEDURE USP_U_Pricing
(
@ProductId int
)
AS
BEGIN
....
END
I 설정과 같이있는 DbParameter :
var pProductId = dataProvider.GetParameter(); //This returns a DbParameter
pProductId.ParameterName = "@ProductId";
pProductId.Value = productId;
pProductId.DbType = DbType.Int32;
을 그리고이 같은 프로 시저를 호출 :
this.Database.SqlQuery<TEntity>("USP_U_Pricing", parameters).ToList();
여기에서 pricing은 SP 이름이며 매개 변수는 다음을 포함하는 배열입니다. pProduct 객체 만. 거기에, 나는 확인했다.
절차 또는 함수 'USP_U_Pricing'파라미터 '@ProductId'가 공급되지 않은 것으로 예상이 행이 실행되면
는, I는 다음의 예외를 얻는다.
나는 주위를 읽고 매개 변수를 설정하는 여러 가지 방법을 테스트했지만 결과는 없습니다. ProductId와 다른 @ProductId라는 두 매개 변수를 설정하면 매개 변수 이름이 고유해야한다는 오류가 발생합니다 ....
제발 나를 도와 줄 수 있습니까?
EDIT : parameters는 매개 변수 정보가 들어있는 배열입니다.
ExecuteStoredProcedureList<TEntity>(string commandText, params object[] parameters)
매개 변수로 pProductId 전달 :
dbContext.ExecuteStoredProcedureList<PricingInfo>(
"USP_U_Pricing",
pProductId);
편집을 참조하십시오. :) – JSBach
Worked, thanks :) Btw, DbParameter 객체에 이름이 이미있는 경우 매개 변수를 명시 적으로 정의해야하는 이유는 무엇입니까? – JSBach