LINQ إلى SQL - Nullable INT في ExternalKey = "لا يمكن إنشاء اقتران..."

StackOverflow https://stackoverflow.com/questions/303239

سؤال

لدي جدول يحتوي على مفتاح أساسي وهو INT ...لدي جدول آخر، له علاقة مفتاح خارجي بالجدول الأول، ولكنه INT NULLABLE.

هذا أمر جيد تمامًا ومقبول بنسبة 100٪ لـ SQL ...ومع ذلك، فإن LINQ to SQL يشكو من الأنواع غير المتطابقة ("int to Nullable[int]").

رسالة خطأ:لا يمكن إنشاء اقتران "Store_People".لا تحتوي الخصائص على أنواع مطابقة:"معرف الشخص"، "المعرف".

كيف يمكنني حل هذه المشكلة حتى يتوقف المصمم عن الصراخ عند الاستخدام الصحيح بنسبة 100٪ لـ SQL؟

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

المحلول

وإليك ما رميت معا. العمود Table1Id Table2 هو مفتاح خارجي nullable لTABLE1. حتى أنا ألقى في عدد قليل من سجلات البيانات واختبار بعض الاستفسارات ينق ...

تحرير : منذ أن كنت اتلقى بعض downvotes (على ما يبدو) لكسر الصلة لأن هذا السؤال هو 6 سنوات والمضيف كنت لم نجا ... وهنا نسخة محدثة.

نصائح أخرى

ولقد وجدت هذه المشكلة. يمكنك إنشاء جمعية فقط إذا لم يكن لدى الفئة الأصل في حقل nullable كمفتاح.

وهكذا، وهذا:

بديل النص http://www.singingeels.com/Articles /UserImage.aspx؟ImageID=43d83ac4-707d-47fc-832c-588261e6a5d7

وسوف يسبب هذا الخطأ:

بديل النص http://www.singingeels.com/Articles /UserImage.aspx؟ImageID=19ed54aa-9f4f-4d5c-ba18-4996509d2da7

و... ولكن هذا:

بديل النص http://www.singingeels.com/Articles /UserImage.aspx؟ImageID=0e09affd-2134-4712-999b-7e792f6e081b

وستعمل تماما.

وهذا يبدو وكأنه علة (أو على الأقل، وهو غباء LINQ إلى SQL) ... ولكن أنا أحب هو بخلاف ذلك.

لدي هذا الوضع بالضبط في DBML الآن، وهو يعمل بشكل جيد.

المفتاح الأساسي

  • لاغية - خطأ
  • المفتاح الأساسي - صحيح
  • نوع بيانات الخادم - int NOT NULL IDENTITY
  • النوع - int (System.Int32)

مفتاح غريب

  • لاغية - صحيح
  • المفتاح الأساسي - خطأ
  • نوع بيانات الخادم - Int
  • النوع - int (System.Int32) (يتم تعريفه فعليًا على أنه Nullable في ملف context.designer.cs)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top