Question

J'utilise LINQ to SQL comme couche d'accès aux données pour un nouveau projet. J'ai ajouté mes tables de base de données au concepteur et tout va bien.

Chaque fois que j'utilise l'une de ces classes dans une fonction, Visual Studio m'avertit que "Type xxxx n'est pas conforme à CLS" ou que "Le type de fonction renvoyé xxxx n'est pas conforme à CLS"

Est-ce un problème avec les classes générées par LINQ to SQL? Est-ce important? Puis-je désactiver ces avertissements n'importe où? Ma liste d’erreurs VS est encombrée par ces avertissements, il est donc difficile de voir autre chose.

EDIT:

Désolé, j'aurais dû mentionner qu'il s'agit de projets VB.NET. :)

Était-ce utile?

La solution

Ben M a la bonne idée du problème.

Le moyen le plus rapide de résoudre ce problème sur un projet VB.Net est de rendre l’assemblage non conforme à CLSC et d'éviter ainsi ces avertissements. Ajouter la ligne suivante à l’un de vos fichiers fera l'affaire

<Assembly: CLSCompliant(False)>

Le meilleur fichier pour l'ajouter est AssemblyInfo.vb à l'intérieur du fichier "Mon projet". dossier.

Autres conseils

J'ai trouvé ce lien sur MSDN Connect:

  

Lors de l'ajout de relations d'héritage   entre les classes dans le concepteur O / R,   le niveau d'accès sur le généré   membre magasin de support de l'id   attribut, "_Id", est remplacé par   privé à protégé, causant le CLS   violation de règle. La propriété Id est   utilisé dans une association entre le   classes.

Si vous souhaitez vous débarrasser des avertissements, vous pouvez utiliser:

#pragma warning disable 3021

Ou, si vous souhaitez les désactiver dans l'ensemble du projet, ajoutez 3021 à l'option "Supprimer les avertissements". dans l'onglet Construire des propriétés de votre projet dans Visual Studio.

Cela dépend en fin de compte des types renvoyés par votre base de données et des noms de ces types.

Un problème concernant la conformité CLS concerne un type comportant deux membres exposés publiquement dont le nom diffère par cas, par exemple. MyField et myField.

Voici un article cela devrait vous aider à déterminer vos problèmes de conformité CSS se posent et à les résoudre. Si vous avez besoin d’aide supplémentaire, posez du code et nous verrons ce que nous pouvons faire.

Je vois généralement cette erreur lorsque je consomme des types d'un assemblage qui n'a pas le Attribut CLSCompliant dans un autre assemblage qui le fait.

C'est-à-dire, vos classes Linq to SQL sont-elles dans un projet différent de celui que vous écrivez? Avez-vous spécifié [assembly: CLSCompliant (true)] dans certains projets de votre solution, mais pas dans tous?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top