2011-12-19 4 views
1

C# 코드에서 저장 프로 시저를 호출하고 싶습니다.EF 저장 프로 시저에 매개 변수를 전달하는 방법은 무엇입니까?

var result = db.ExecuteStoreCommand("TaskSchedule", new object[] { new ObjectParameter("treatmentDateFrom", dateTime)}); 

을 내가 그러나 다음과 같은 오류가 무엇입니까 :

No mapping exists from object type System.Data.Objects.ObjectParameter to a known managed provider native type.

당신은 내가 잘못 뭐하는 거지 나 조언을 주 시겠어요를이 내가 시도하는 방법이다?

SP에서 값을 가져 오는 것에 대한 많은 게시물을 보았지만 SP에 매개 변수를 전달하고 싶습니다. 나는 EF4를 사용하고있다.

미리 도움을 주셔서 감사합니다.

답변

1

SP를 ObjectContext에 매핑하면 저장 프로 시저 쓰루 EF에 쉽게 액세스 할 수 있습니다.

EDMX 디자이너에서 저장 프로 시저를 가져 와서 결과를 새로운 형식 또는 기존 형식으로 매핑 할 수 있습니다. 이 후에 SP는 개체 컨텍스트에서 강력한 형식의 함수가됩니다.

Here is some documentation 약 SP 가져 오기

SP를 가져 와서 ExecuteStoreCommand를 사용하지 않으려면 명령 텍스트에서 매개 변수를 지정하고 올바른 이름과 값을 가진 SqlParameter 유형인지 확인해야합니다.

+0

가져 오기 기능으로 EDMX에 추가했습니다. 그러나 매개 변수를 추가 할 수있는 방법은 없습니다. EDMX can not는이 절차가 모든 매개 변수를 취하는 것을 볼 수 있습니다. SQL Management studio는 그렇습니다. EDMX를 수동으로 편집하려고 시도했으며 이러한 매개 변수를 추가했습니다. 나는 또한 수입 기능을 새로 고쳤다. 이제이 매개 변수를 적절한 매개 변수로 호출 할 수 있습니다. var result = db.TaskSchedule (DateTime.Now, ...); 올바르게 컴파일되지만 다음 오류가 발생합니다. 저장소 데이터 공급자가 반환 한 데이터 판독기에 요청한 쿼리의 열이 충분하지 않습니다. – user1089583

+0

http://msdn.microsoft.com/en-us/library/bb896334.aspx가 도움이됩니까? –

관련 문제