2010-08-17 4 views
1

VS 2008 대상 .net 3.5에서 개발 한 웹 사이트가 있습니다. 잘 돌아갔습니다. 최근에 VS 2010으로 업그레이드하여 사이트를 약간 변경해야했습니다. 그러나 컴파일 오류가 발생했습니다 (코드를 아직 변경하지 않았으며 사이트가 정상적으로 작동하는지 확인하기 시작했습니다). "Contains"는 system.array의 멤버가 아닙니다. 내가 읽은 모든 것은 contains 메서드가 VS 2007에서 작동했기 때문에 올바른 것으로 알고있는 .net 3.5에 추가되었다고 말합니다. VS 3.5에서 .net 3.5를 대상으로했지만 여전히 작동하지 않습니다. . 나는 또한 linq를 사용하여 linqkit에서 동적 쿼리를 수행했으며 모든 linq 쿼리에서 내 쿼리가 쿼리 가능하지 않다는 것을 알았습니다. (필자는 실제 오류가 없었습니다.) 어쨌든, 그 중 하나를 해결하기 위해, 나는 system.linq (나는 이전에 system.data.linq를 가져 왔고 잘 동작했다)를 가져와야 만했다. 다시 말씀 드리지만, VS 2010에서 .net 4에 내 사이트를 타겟팅하지 않았습니다. 타겟팅 한 .net 3.5를 남겨 두었습니다.VS 2008에서 VS 2010으로 업그레이드 한 후 Contains가 system.array 오류의 한 구성원이 아닙니다.

arraylists가 .contains 메소드를 사용하고 있기 때문에 배열을 arraylists로 변환하려고했지만 사이트에서 실행할 때 linqkit 쿼리가 손상되었습니다.

가 여기 내 linqkit 쿼리입니다 : 내가 ArrayList의 변환을하지 않았다

Dim str() As String = archlist.ToArray(GetType(String)) 
     Dim str3 As New ArrayList 
     str3 = ArrayList.Adapter(str) 
     predicate = predicate.And(Function(l As CompatTesting) str3.Contains(l.application.cpuarchitecture)) 

전에, 난 그냥 str.contains이 있고 그 문 "의"SQL을 생성하는 데 큰했다. 위의 코드를 사용하면 사이트가 시작되지만 실제로 코드를 실행하면 Method 'Boolean Contains (System.Object)'에 SQL에 대한 지원되는 번역이 없습니다. 또한 linqkit dll을 최신 버전으로 업그레이드하려고 시도했지만 도움이되지 않았습니다.

내 질문은 내가 동일한 .net 3.5 프레임 워크를 2010 년으로 타겟팅하고 있기 때문에 왜 더 이상 array.contains를 사용할 수 없게되는 것입니까? 어쩌면 내가 그 문제를 해결할 수 있다면, "contains"에 sql에 대한 지원되는 번역이 없다는 내 linqkit 문제가 수정 될 것입니다.

도움을 주시면 감사하겠습니다. 나는 ... 다시 내 사이트를 수정하는 2008 대에 복귀 할

+0

어떤 언어입니까? – ChrisF

+0

Contains는 확장 메서드 (Enumerable 클래스의 일부)입니다. 'using System.Linq; '참조를 포함 시켰습니까? 다른 확장 방법을 사용할 수 있습니까? –

+0

asp.net에서 vb.net을 사용하고 있습니다. 나는 이전에 imports system.data.linq를 사용하고 있었고 2010 년으로 업그레이드 한 후에 import system.linq를 추가해야한다고했습니다. 그게 원래 쿼리를 쿼리 할 수 ​​없다는 오류를 해결했지만, 나는 여전히 "문제가"linqkit 및 내 동적 linq 쿼리에 문제가 발생할 수 있습니다 생각하는 system.array 메서드가 포함되어 있습니다. 메시지 메서드 'Boolean Contains (System.Object)'에 SQL에 대한 지원되는 변환이 없습니다. – Lance

답변

-2

마우스 오른쪽 단추로 프로젝트를 클릭하지 않는다 -> 열기 속성 페이지 (Shift + F4)를

설정 .NET 프레임 워크 3.5 다음에 대상 프레임 워크 확인을 클릭하고 프로젝트를 빌드하십시오.

관련 문제