IMustafa Zeynali
IMustafa Zeynali
خواندن ۱ دقیقه·۱ سال پیش

System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values

System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values
System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values

سلام!

دوباره اومدم با یه نکته مهم آموزشی سی شارپ.

یه راست میرم سره اصل مطلب!

این ارور توی کار با ef یا ef core امکان داره بوجود بیاد،

همونطور که از متنش معلومه، به اون صورت دستمونو نمیگیره و نمیفهمیم مشکل از کجاست.

علت اصلی این مشکل چیه؟؟؟

این ارور وقتی بوجود میاد که شما کوئری ای رو که با ef نوشتین execute (اجرا) میکنین، و این ارور رو میبینین.

ی مثال ساده بزنم:

یه انتیتی تعریف کردیم به نام person که با country رابطه one to many (یک به چند) داره.

اگ روی این تیبل کوئری بزنیم اروری که راجبش پست نوشتم رو میبینیم.

چرا؟؟

دلیل همون خط های سبزه که زیره Persons و Country کشیده شده.

این خط های سبز رو شاید تو خیلی پروژه ها نبینین و بگن چرا فلان جا زدم و این خط سبز نیومد و هیچ اروری هم توی ef نگرفتم.

دلیل قابلیت NRT هس.

اگ توی پروژتون NRT فعال باشه این ارور سبز رو میبینین، اما اگ غیر فعال باشه دیگ این ارور رو نمیبینین.

دو تا راه حل وجود داره.

یک) غیر فعال کردن NRT در پروژه.


دو) افزودن ? به پراپرتی.

Software Engineer
شاید از این پست‌ها خوشتان بیاید