Frage

Ich bin mit LINQ für ein neues Projekt als meine Datenzugriffsschicht auf SQL. Ich habe meine Datenbank-Tabellen zu dem Designer hinzugefügt und alles ist gut.

Jedes Mal, wenn ich eine dieser Klassen verwenden, in einer Funktion, Visual Studio warnt mir, dass ‚Type xxxx nicht CLS-kompatibel ist‘ oder dass ‚Rückgabetyp der Funktion xxxx ist nicht CLS-kompatibel‘

Ist das ein Problem mit den Klassen, die LINQ to SQL erzeugt? Ist es wichtig? Kann ich diese Warnungen überall deaktivieren? Meine VS Fehlerliste ist verstopft mit diesen Warnungen machen es schwer, etwas anderes zu sehen.

EDIT:

Sorry, sollte ich erwähnt habe diese VB.NET-Projekte sind. :)

War es hilfreich?

Lösung

Ben M hat die richtige Idee auf das Problem.

Der schnellste Weg, dies auf einem VB.Net Projekt zu lösen, ist die Montage nicht CLSCompliant zu machen und damit diese Warnungen zu vermeiden. Das Hinzufügen der folgenden Zeile auf alle Ihre Dateien werden den Trick

<Assembly: CLSCompliant(False)>

Best Datei, um sie in hinzuzufügen ist AssemblyInfo.vb innerhalb des „My Project“ -Ordner.

Andere Tipps

Ich fand diesem Link auf MSDN Connect:

  

Beim Hinzufügen von Vererbungsbeziehungen   zwischen den Klassen in der O / R-Designer,   die Acess Ebene auf dem erzeugten   Zusatzspeicher Mitglied der Id   Attribut „_ID“ wird geändert von   privat geschützt, wodurch die CLS   Regelverletzung. Die Id-Eigenschaft ist   in einer Assoziation zwischen der verwendet   Klassen.

Wenn Sie die Warnungen loswerden wollen, können Sie:

#pragma warning disable 3021

Oder, wenn Sie wollen, dass sie projektweit deaktivieren, fügen Sie 3021 auf das „Warnungen unterdrücken“ Feld im Register Erstellen Ihres Projektes Eigenschaften in Visual Studio.

Es hängt letztlich davon ab, welche Arten von Ihrer Datenbank und was die Namen der Typen zurückgegeben werden.

Eine Frage in Bezug auf CLS-Kompatibilität ist eine Art, die zwei öffentlich exponierten Mitglieder hat, die nur von Fall in Namen unterscheiden, z.B. MyField und myField.

Hier ist einen Artikel dass sollten Sie mit CSS-Compliance-Themen werden auftreten und befassen sich mit den Themen ermitteln. Wenn Sie weitere Hilfe benötigen, einen Code darstellen, und wir werden sehen, was wir tun können.

ich in der Regel, dass die Fehlermeldung angezeigt, wenn ich Typen von einer Baugruppe raubend, die nicht die hat CLSCompliant Attribut in einer anderen Anordnung, die der Fall ist.

Das heißt, sind Ihre Linq to SQL-Klassen in einem anderen Projekt als die Funktionen Sie schreiben? Haben Sie [assembly: CLSCompliant(true)] in einigen angegeben, aber nicht alle Projekte in Ihrer Lösung?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top