1

新しいプロジェクトのデータアクセス層としてLINQtoSQLを使用しています。データベーステーブルをデザイナに追加しましたが、すべて問題ありません。

関数でこれらのクラスのいずれかを使用すると、VisualStudioは「タイプxxxxはCLSに準拠していません」または「関数xxxxの戻り型はCLSに準拠していません」と警告します。

これは、LINQ to SQLが生成するクラスの問題ですか?それは重要ですか?これらの警告をどこでも無効にできますか?私のVSエラーリストはこれらの警告で詰まっていて、他のものを見るのが難しくなっています。

編集:

申し訳ありませんが、これらはVB.NETプロジェクトです。:)

4

4 に答える 4

3

MSDN Connect で次のリンクを見つけました。

O/R デザイナーでクラス間の継承関係を追加すると、生成された Id 属性のバッキング ストア メンバー "_Id" のアクセス レベルがプライベートから保護に変更され、CLS ルール違反が発生します。Id プロパティは、クラス間の関連付けに使用されます。

警告を取り除きたい場合は、次を使用できます。

#pragma warning disable 3021

または、プロジェクト全体で無効にする場合は、Visual Studio のプロジェクト プロパティの [ビルド] タブにある [警告を表示しない] フィールドに 3021 を追加します。

于 2009-08-05T16:15:01.123 に答える
0

通常、 CLSCompliant属性を持たない別のアセンブリでCLSCompliant属性を持たないアセンブリから型を消費しているときに、このエラーが発生します。

つまり、Linq to SQLクラスは、作成している関数とは異なるプロジェクトにありますか?ソリューションのすべてではありませんが、一部のプロジェクトで指定[assembly: CLSCompliant(true)]しましたか?

于 2009-08-05T16:25:00.247 に答える
0

最終的には、データベースから返される型と、それらの型の名前によって異なります。

CLS 準拠に関する問題の 1 つは、MyField と myField など、大文字と小文字だけが異なる 2 つのパブリックに公開されたメンバーを持つ型です。

CSS 準拠の問題が発生している場所を特定し、問題に対処するのに役立つ記事を次に示します。さらに助けが必要な場合は、いくつかのコードを提示してください。何がで​​きるかがわかります。

于 2009-08-05T16:13:59.007 に答える