2010-02-23 2 views
3

원래 코드 : 왜 C#에서 VB 로의 변환이 작동하지 않습니까?

public List<Contact> GetContactListEntityCompiledLINQ() 
{ 
    if (entities == null) entities = new CompanyEntities(); 

    ObjectQuery<Contact> contacts = compiledQuery.Invoke(entities); 
    if (NoTracking) contacts.MergeOption = MergeOption.NoTracking; 

    return contacts.ToList<Contact>(); 
} 

내 변환

코드 : 나는 VB 버전의 Visual Studio에서 오류 얻을

Public Function GetContactListEntityCompiledLINQ() As List(Of Contact) 

     If entities Is Nothing Then entities = New CompanyEntities() 

     Dim contacts As ObjectQuery(Of Contact) = compiledQuery.Invoke(entities) 
     If NoTracking Then contacts.MergeOption = MergeOption.NoTracking 

     Return contacts.ToList(Of Contact)() 

    End Function 

:

오류 1 개 확장 방법 '공개 기능 ToList를() 'System.Linq.Enumerable'에 정의 된대로 System.Collections.Generic.List (Of TSource)는 generic이 아니므로 (자유 형식 매개 변수가 없음) 형식 인수를 가질 수 없습니다.

오류는 Return 문에 있고 연락처에는 파란색 구불 구불 한 밑줄이 그어져 있습니다.

아이디어가 있으십니까? 이것에

+0

마지막'()'에서 리턴 라인을 살해 시도? –

답변

6

변경을 :

Public Function GetContactListEntityCompiledLINQ() As List(Of Contact) 

    If entities Is Nothing Then entities = New CompanyEntities() 

    Dim contacts As ObjectQuery(Of Contact) = compiledQuery.Invoke(entities) 
    If NoTracking Then contacts.MergeOption = MergeOption.NoTracking 

    Return contacts.ToList() 

End Function 
+0

일반 버전을 돌려 주어야 하나? 아니면 실제 번역이 아닙니다 ... – NibblyPig

+0

일반 목록을 반환합니다. type 매개 변수가 내포됩니다. – SLaks

+0

원본 코드는 내가 말할 수있는 한 작동해야하지만, 게시 한 내용은 작동하고 IL 수준에서는 동일합니다. –

관련 문제