LINQ to SQL クラスは CLS に準拠していませんか?
-
22-07-2019 - |
質問
新しいプロジェクトのデータ アクセス レイヤーとして LINQ to SQL を使用しています。データベーステーブルをデザイナーに追加しましたが、すべて問題ありません。
これらのクラスのいずれかを関数で使用すると、Visual Studio から「型 xxxx は CLS に準拠していません」または「関数 xxxx の戻り値の型は CLS に準拠していません」という警告が表示されます。
これは LINQ to SQL が生成するクラスに問題があるのでしょうか?それは重要ですか?これらの警告をどこでも無効にできますか?私の VS エラー リストはこれらの警告で詰まっており、他に何も表示されにくくなっています。
編集:
申し訳ありませんが、これらは VB.NET プロジェクトであると言うべきでした。:)
解決
Ben Mは問題について正しい考えを持っています。
VB.Netプロジェクトでこれを解決する最も簡単な方法は、アセンブリをCLSCompliantではなく、それらの警告を回避することです。ファイルに次の行を追加すると、トリックが実行されます
<Assembly: CLSCompliant(False)>
追加するのに最適なファイルは、&quot; My Project&quot;内のAssemblyInfo.vbです。フォルダ。
他のヒント
継承関係を追加する場合 O / Rデザイナーのクラス間、 生成されたアクセスレベル Idのバッキングストアメンバー 属性&quot; _Id&quot;は、 プライベートから保護、CLSの原因 ルール違反。 Idプロパティは 間の関連付けで使用される クラス。
警告を取り除くには、次を使用できます。
#pragma warning disable 3021
または、プロジェクト全体で無効にする場合は、「警告を表示しない」に3021を追加します。 Visual Studioでプロジェクトのプロパティの[ビルド]タブのフィールド。
最終的には、データベースから返される型と、それらの型の名前によって異なります。
CLS 準拠に関する 1 つの問題は、大文字と小文字が異なるだけで名前が異なる 2 つの公開メンバーを持つ型です。マイフィールドとマイフィールド。
こちらです 記事 それはあなたが判断するのに役立つはずです どこ CSS コンプライアンス問題が発生していることを確認し、問題に対処します。さらにサポートが必要な場合は、コードを提示してください。何ができるかを確認します。
つまり、Linq to SQLクラスは、作成している関数とは異なるプロジェクトにありますか?ソリューションのすべてではないが一部のプロジェクトで [assembly:CLSCompliant(true)]
を指定しましたか?