2012-01-04 2 views
1

sqlmetal.exr을 사용하여 매핑 코드를 생성하고 있습니다. 나는 SQL 메탈을 사용하여 호출하고있다.sqlmetal.exe가 반환합니다. 'System.Data.Linq.Table'제네릭 형식을 사용하려면 1 개의 형식 인수가 필요합니다.

cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin 
SqlMetal.exe /server:servername\SQL /database:mydb /code:mycode.cs 

출력은 CS 파일과 명령 PROMT는 말한다 :

Microsoft (R) Database Mapping Generator 2008 version 1.00.30729 for Microsoft (R) .NET Framework version 3.5 Copyright (C) Microsoft Corporation. All rights reserved.

내 프로젝트에 파일을 추가하고 나는 다음과 같은 오류 얻을 그것을 구축 할 때 :

Using the generic type 'System.Data.Linq.Table' requires 1 type arguments

내 mycode.cs 파일에 있습니다. System.Data.Linq 및 System.Data를 참조합니다. 이 문제를 해결하기 위해 누락 된 참조는 무엇입니까?

업데이트

Make sure you have System.Data.Linq in your GAC and that the assembly version is 3.5.0.0. Also make sure that's the version your project is referencing.

enter image description here

enter image description here

Double-check that your application's target framework hasn't somehow been changed to something other than 3.5. The Linq To SQL features only work with the 3.5 framework.

enter image description here

+0

Linq를 SQl 또는 이와 비슷한 것으로 만드십니까? 귀하의 코드에서 Linq 문을 사용하고 있습니까? .cs 파일의 헤더에서 System.Linq를 제거하지 않으면 – MethodMan

+0

예 SQL에 Linq를 수행하고 있으며 Linq 구문 인미 코드가 있습니다. – John

+0

프로젝트를 컴파일하면 .. GAC의 System.Data.Linq입니다 ..? – MethodMan

답변

1

문제가 여기에 지속 것들의 목록은 CA가있는 경우 n은 문제를 확인하는

몇 가지를 해결하려고 시도/:

  • 당신이 당신의 GAC에 어셈블리 버전은 3.5.0.0입니다 System.Data.Linq이 있는지 확인합니다. 또한 프로젝트가 참조하는 버전인지 확인하십시오.

  • 프로젝트 참조를 보면 노란색 "!" 참조 옆에있는 아이콘? 그렇다면 프로젝트 참조가 포함 된 System.Data.Linq의 버전을 VS에서 찾을 수 없음을 나타냅니다. 참조를 삭제하고 새 참조를 추가해야합니다. 응용 프로그램의 대상 프레임 워크는 어떻게 든 3.5 이외로 변경되지 않았 음을

  • 한 번 확인. Linq To SQL 기능은 3.5 프레임 워크에서만 작동합니다.

+0

감사합니다. 모두 괜찮아 보이지만 여전히 작동하지 않습니다. 당신의 도움을 주셔서 감사합니다. – John

+0

Copy Local을 True로 설정하고 도움이되는지 확인하십시오. 배포 할 때 System.Data.Linq의 버전이 해당 대상 시스템에 없습니다 .. 경로를 살펴보십시오. 경로뿐만 아니라 대상 경로가 로컬 경로와 같다고 가정 할 수 없습니다. – MethodMan

관련 문제