2012-12-19 4 views
0

나는 다음과 같은 저장 프로 시저를 가지고 :저장 프로 시저는 더 열을 반환

엔티티 프레임 워크에서
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
ALTER PROCEDURE [dbo].[SearchMediaTitles] 

    @query varchar(50), 
    @limit int = 6, 
    @userId int 
AS 
SET FMTONLY OFF 
BEGIN 

declare @searchString varchar(52) 

set @searchString = '"' + @query +'*"' 
IF @userId!=NULL 
SELECT TOP (@limit) ID, Title from Media where CONTAINS([Title], @searchString) 
AND ID IN 
    (
    SELECT FavoriteMedia_ID 
    FROM dbo.UserMedia 
    WHERE [email protected] 
) 
ELSE 
SELECT TOP (@limit) ID, Title from Media where CONTAINS([Title], @searchString) 

END 

나는 그것이

가 저장 선택된 말한다 복잡한 유형의 기능을 가져 오기에 매핑하려고 프로 시저가 열을 반환하지 않음

나는 이것에 대해 인터넷에서 읽었으며 0을 설정해야한다는 것을 알았습니다.,하지만 알 수 있듯이 작동하지 않았습니다.

아이디어가 있으십니까?

편집는 :

나는 *SELECT을 변경 한 그것은 빈 결과를 반환합니다. 위의 문제와 관련이 있다고 생각합니다.

+2

비트의 정의는 일시적으로 정의를 'SELECT ID, Media from Title'로 변경하면 조건부 논리가없는 단순한 직선 proc이므로 엔티티 프레임 워크 매핑을 수행 한 다음 원래 코드를 다음과 같이 되돌립니다. 두 경로 모두 해당 모양의 결과 집합을 반환하는 것처럼 보입니다. –

+0

나는 이것을 시도했지만 작동하지 않는다. – Kosmog

+1

'SET FMTONLY' 문을 없앴습니까? 또한이 저장된 proc 특정 뭔가가 또는 모든 저장 프로 시저에 대한이 얻을 수 있습니까? –

답변

3

, 이것은 내가 무슨 짓을했는지입니다. 나는 Entity Framework에서 수입

SELECT [column1],[column2] FROM [table] 

복합 형 및 매핑 속성을

을 만든 다음 그것을 다시 변경하고 모델을 업데이트 :

는 우선이 같은 간단한 하나에 저장 프로 시저를 수정 이제는 작동합니다. Entity Framework에는 복잡한 저장 프로 시저에 몇 가지 문제점이 있다고 생각합니다. 내가 읽은 바에 따르면 동적 저장 프로 시저 또는 temp tables을 사용하는 저장 프로 시저의 결과를 얻을 수 없습니다.

추신 : 나는 Ajax를 호출 할 때 data.column1 and data.column2을 사용하여 호출합니다. data.value' it returns undefined`을 사용하면됩니다.

다소 이상합니다.

EDIT : 마치 마틴이 말했듯이 처음에는 효과가 없었습니다. Btw 감사합니다!

1

prefix_term에 작은 따옴표가 누락 된 것 같습니다. 그래서이 :

set @searchString = '"' + @query +'*"' 

은 다음과 같아야 같은 문제가 모두 들어

set @searchString = CHAR(39) + '"' + @query +'*"' + CHAR(39) 
+0

전체 텍스트 검색을 사용하고 있는데 작동하지 않습니다. – Kosmog

관련 문제