سؤال

أنا باستخدام LINQ to SQL كما بلدي طبقة الوصول إلى البيانات لمشروع جديد.لقد تم إضافة قاعدة البيانات الجداول إلى مصمم و كل شيء على ما يرام.

متى يمكنني استخدام واحدة من هذه الفئات في دالة Visual Studio يحذر لي أن 'نوع xxxx لا CLS المتوافقة' أو 'عودة نوع من وظيفة xxxx لا CLS المتوافقة'

هل هذه المشكلة مع الفئات التي LINQ to SQL تنتجها ؟ هل هذا مهم ؟ هل يمكنني تعطيل هذه التحذيرات في أي مكان ؟ بلدي مقابل الخطأ قائمة انسداد مع هذه التحذيرات مما يجعل من الصعب رؤية أي شيء آخر.

تحرير:

آسف كان يجب أن أذكر هذه VB.NET مشاريع.:)

هل كانت مفيدة؟

المحلول

وبن M لديه فكرة الحق على المشكلة.

وأسرع طريقة لحل هذا على مشروع VB.Net هو جعل التجمع لا CLSCompliant وبالتالي تجنب تلك التحذيرات. وإضافة السطر التالي إلى أي من الملفات تفعل خدعة

<Assembly: CLSCompliant(False)>

وأفضل ملف لإضافته إلى غير AssemblyInfo.vb داخل المجلد "مشروعي".

نصائح أخرى

ولقد وجدت هذا الرابط على MSDN الاتصال:

<اقتباس فقرة>   

وعند إضافة العلاقات الميراث   بين الطبقات في مصمم O / R،   مستوى رصا على المتولدة   دعم عضو مخزن للهوية   السمة "_ID"، يتم تغيير من   خاصة لحمايتها، مما تسبب في CLS   انتهاك القاعدة. الخاصية رقم هي   المستخدمة في وجود ارتباط بين   الطبقات.

إذا كنت تريد التخلص من هذه التحذيرات، يمكنك استخدام:

#pragma warning disable 3021

وأو، إذا كنت ترغب في تعطيل عليها على نطاق المشروع، إضافة إلى 3021 حقل "قمع تحذيرات" في علامة التبويب إنشاء خصائص المشروع الخاص بك في Visual Studio.

فإنه في نهاية المطاف يعتمد على ما أنواع يتم إرجاعها بواسطة قاعدة البيانات الخاصة بك و ما أسماء تلك الأنواع.

قضية واحدة تتعلق CLS الامتثال هو نوع يحتوي على اثنين علنا يتعرض الأعضاء التي تختلف في الاسم فقط حسب الحالة ، على سبيل المثالMyField و myField.

هنا مقال التي ينبغي أن تساعدك على تحديد حيث CSS الخاص بك الامتثال القضايا التي تحدث والتعامل مع القضايا.إذا كنت بحاجة إلى مزيد من المساعدة ، تشكل بعض التعليمات البرمجية ونحن سوف نرى ما يمكننا القيام به.

وأنا عادة ما نرى هذا الخطأ عندما أكون أنواع من تجميع واحد الذي لا يملك في السمة CLSCompliant في التجميع آخر الذي لا.

وهذا هو، هي بك LINQ إلى SQL فصول في مشروع آخر من وظائف كنت تكتب؟ لقد قمت بتحديده [assembly: CLSCompliant(true)] في بعض وليس كل المشاريع في الحل؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top