문제

새 프로젝트의 데이터 액세스 계층으로 LINQ to SQL을 사용하고 있습니다.내 데이터베이스 테이블을 디자이너에 추가했는데 모든 것이 정상입니다.

함수에서 이러한 클래스 중 하나를 사용할 때마다 Visual Studio에서는 'xxxx 유형이 CLS 규격이 아닙니다' 또는 'xxxx 함수의 반환 유형이 CLS 규격이 아닙니다'라는 경고를 표시합니다.

LINQ to SQL이 생성하는 클래스에 문제가 있습니까?그게 중요합니까?어디에서나 이러한 경고를 비활성화할 수 있나요?내 VS 오류 목록이 이러한 경고로 가득 차서 다른 것을 보기가 어렵습니다.

편집하다:

죄송합니다. VB.NET 프로젝트라고 언급했어야 했습니다.:)

도움이 되었습니까?

해결책

Ben M 은이 문제에 대한 올바른 아이디어를 가지고 있습니다.

VB.NET 프로젝트에서이를 해결하는 가장 빠른 방법은 어셈블리를 clscompliant를 사용하지 않고 경고를 피하는 것입니다. 파일에 다음 줄을 추가하면 트릭이됩니다.

<Assembly: CLSCompliant(False)>

"내 프로젝트"폴더 내부의 AssemblyInfo.vb입니다.

다른 팁

나는 찾았다 MSDN Connect의 이 링크:

O/R 디자이너의 클래스간에 상속 관계를 추가 할 때, ID 속성 "_id"의 ​​생성 된 백업 스토어 멤버의 Acess 레벨은 개인에서 보호 된 것으로 변경되어 CLS 규칙 위반을 초래합니다.Id 속성은 다음과 같습니다. 사이의 연결에 사용됩니다. 클래스.

경고를 제거하려면 다음을 사용할 수 있습니다.

#pragma warning disable 3021

또는 프로젝트 전체에서 비활성화하려면 Visual Studio에서 프로젝트 속성의 빌드 탭에 있는 "경고 표시 안 함" 필드에 3021을 추가하세요.

궁극적으로 데이터베이스에서 반환되는 유형과 해당 유형의 이름이 무엇인지에 따라 다릅니다.

CLS 규정 준수와 관련하여 한 가지 문제는 Myfield와 Myfield (예 : Myfield와 Myfield)에 의해서만 이름이 다른 두 명의 공개 노출 된 멤버가있는 유형입니다.

여기에 있습니다 기사 그것은 당신이 결정하는 데 도움이 될 것입니다 어디 CSS 규정 준수 문제가 발생하고 문제를 처리합니다. 더 많은 도움이 필요하면 코드를 제시하면 우리가 할 수있는 일을 볼 수 있습니다.

나는 보통 하나의 어셈블리에서 유형을 소비 할 때 오류가 clscompliant 다른 어셈블리에서 속성.

즉, LINQ에서 SQL 클래스에서 다른 프로젝트에서 작성하는 기능과 다른 프로젝트에서 SQL 클래스가 있습니까? 지정 했습니까? [assembly: CLSCompliant(true)] 솔루션의 모든 프로젝트는 아니지만?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top