0
내가 엔티티 쿼리에 LINQ로 변환하려고 다음 저장 프로 시저 한

:LINQ는 L2E 쿼리에 저장 프로 시저를 Converting이

SELECT 
    SR.*, 
    F.* 
FROM 
    Users AS U, 
    UsersToClients AS UM, 
    Filings AS F, 
    Records AS SR 
    LEFT OUTER JOIN RecordsMappings AS MAP ON 
     MAP.[MappingID] = SR.[MappingID] 
WHERE 
    UM.[ClientID] = @clientID AND 
    U.[Username] LIKE UM.[Username] AND 
    U.[Deleted] = 0 AND 
    F.[Username] LIKE U.[Username] AND 
    SR.[FilingID] = F.[FilingID] AND 
    SR.[RecordType] = @recordType AND 
    SR.[ClientID] = @clientID AND 
    dbo.uf_Record_IsValuable(SR.[RecordID], 0) = 1 

는 거의 정확하게에서 다음 쿼리를 무슨 일이 일어나고있다 무엇을하는 저장된 proc 디렉토리 :

var records = 
    from sr in context.SecuritiesRecords 
    from u in context.Users 
    from um in context.UsersToClients 
    from f in context.Filings 
    where 
     um.ClientID == clientID && 
     String.Compare(u.Username, um.Username, true) == 0 && 
     !u.Deleted && 
     String.Compare(u.Username, f.Username, true) == 0 && 
     sr.FilingID == f.FilingID && 
     sr.RecordType == recordType && 
     sr.ClientID == um.ClientID 
    select sr; 

문제는 마지막에 발생 WHERE 조건부 논리의 무리에 따라 기록을 필터링하는 사용자 정의 함수를 호출되는 저장된 프로 시저에서 절. 나는 L2E에서 저장된 proc을 호출하기를 원하지 않았다. 왜냐하면 데이터를 필터링하기위한 where 절을 더 추가 할 것이고 저장된 proc은 LINQ 끝에있는 메모리에서 깎아 내릴 많은 레코드를 가져올 수 있기 때문이다.

내 옵션에는 어떤 것들이 있습니까?

편집 : 성공적으로 다음과 모델 정의 함수 만든

:

<DefiningExpression> 
    1 
</DefiningExpression> 

을하지만을 나는 (나는 또한에 추가 한 정의 표현에 내 UDF를 삽입 할 때 이 모델은)으로는 다음과 같습니다

<DefiningExpression> 
    uf_Record_IsValuable(100, 0) 
</DefiningExpression> 

나는 다음과 같은 오류 얻을 : 'uf_Record_IsValuable이'유효한 t으로 해결 될 수없는 예 또는 기능.

답변

0
+0

이 문서에서는 사용자 정의 함수를 호출하는 모델 정의 함수를 만드는 설명하지 않습니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까? – Chris

+0

개인적으로 블로그에 정의 된 메서드를 사용하여 모든 단계를 수행했는지 확인하십시오. –

+0

내가 말했듯이 DefiningExpression은 기사 에서처럼 간단한 SQL 문인 예제를 얻었지만 얻을 수는 없습니다 주어진 문서에서 자세히 설명하지 않은 UDF로 작업합니다. – Chris

관련 문제