2012-11-13 4 views
1
List<GetAllDataResult> list = myContext.GetAllData(id).ToList(); 

위의 Entity Framework를 사용하는 저장 프로 시저 호출을 고려하십시오. 내가 그것을 호출 할 때, 나는 5 열이 반환 될 것으로 기대하고있다. (나는 열거 할 것이다.) 그러나 호출은 오직 하나의 행을 반환하고있다 - 첫 번째 행처럼 보인다.하나의 결과 만 반환하는 Entity Framework 저장 프로 시저

이것은 EF 디자이너의 메서드입니다. 코드 : public ObjectResult GetAllData (Nullable id)();

왜 목록을 반환하지 않습니까?

SQL Server Management Studio에서 SP를 수동으로 실행할 때 올바른 목록을 얻고 있습니다. 아이디어가 있으십니까?

exec [dbo].[GetAllData] @id=2 
+0

'GetAllData' 메소드의 코드를 보여줄 수 있습니까? –

+0

디자이너가 EF에서 생성 한 코드 일뿐입니다. – Adrian

+0

프로파일 러를 실행하여 실행중인 쿼리를 확인할 수 있습니까? –

답변

0

당신의 EF 디자이너에서 당신이 당신의 매핑을 확인할 수 있습니다 : 다음과 같이 SQL 프로파일 러에서

Select id, Name, age from Person where lid = @id 

내가 전화를 볼 수 있습니다

업데이트 : 다음과 같이 저장 프로 시저가 실행되는 무엇입니까?

데이터베이스에서 엔티티를 자동으로 생성 한 경우 실제로는 @ID 매개 변수가 Person의 ID 필드에 매핑된다는 가정이 있습니다. 이로써

, 난 EF는 SQL을 생성 할 때이 잘 생성 될 수 있음을 의미한다 : 이것은 상기 리턴 로우 2의 ID 아닌 lid

이 있는지 확인할 수있다

 Select id, Name, age from Person where id = @id 

관련 문제