• 1405/06/28

حذف رکوردی از جدولی که رابطه دارد :

وقت بخیر استاد

1 - با حذف رکوردی از جدولی که رابطه دارد، مثلا حذف یک استاد از جدول Person، زمان SaveChanges() ، باید خطا بدهد از طرف sqlServer ? یا باید حتما دستی کدی بنویسیم که این اتفاق بیفتد؟

2 - و اینکه با افزودن این خط کد نیاز به Migration nhvdl?

builder.HasOne(p => p.Teacher).WithOne(c => c.Course).HasForeignKey<Course>(o => o.TeacherId)

  • 1405/06/28
  • ساعت 20:50

سلام

در دوره توضیح دادم

آن خط را برای من کامل شرح دهید لطفا


  • 1405/06/29
  • ساعت 07:18

ممنونم از پاسخ گویی شما 

من تا قسمت110 پیش رفتم به همین خاطر نمیدونستم این بخش رو توضیح دادید.

بجای Data Annotation از FluentApi استفاده کردم در کلاسی بنام CourseMapp در پوشه ای بنام Mapper و روابط و رفتارهای پراپرتی ها رو اونجا تعریف کردم.

builder.HasOne(p => p.Teacher).WithOne(c => c.Course).HasForeignKey<Course>(o => o.TeacherId)

در این خط رابطه ی یک به یک بین جدول Person با NavigationProperty بنام Course و انتیتی Course با NavigationProperty بنام Teacher و کلید ForeignKey با عنوان TeacherId در جدول Course تعریف شده.

راستش استاد مشکلم این بود که با حذف یک استاد کلاس هایی که برای اون شخص تعریف شده بود، ستون استادش خالی میشد اما هیچ خطایی از سمت Sql نداشتم با وجود تعریف رابطه و چون حدس میزدم این خط کد رو بعد از Migration اضافه کردم، فایل Key از جدول Course رو در sql چک کردم که متوجه شدم فقط کلید اصلی داره و ForeignKey  نداره، بنابراین Migration زدم و ForeignKey اضافه شد و مشکلم حل شد.

فقط نمیدونستم که با اضافه کردن این خط کد نیاز به Migration داریم یا نه که وقتی امتحان کردم متوجه شدم که بله.

هوش مصنوعی .OnDelete(DeleteBehavior.Restrict) رو پیشنهاد کرد اما چون احساس میکردم این نباید راهش باشه رفتم سراغ Sql


  • 1405/06/29
  • ساعت 08:59

من خاطرم نیست در دوره fluent آموزش داده باشم 

احتمالا در جلسات بعدی راجع بهش صحبت کنم


  • 1405/06/29
  • ساعت 15:11

دوره ی EFcore استاد خیامدار رو دیدم من و اینکه از مدتی قبل کمی پیش زمینه داشتم اما بخاطر اینکه پایه ام خیلی ضعیف بود این دوره رو ثبت نام کردم و راستش سعی میکنم هرقسمت رو قبل از اینکه شما کدش رو بزنید خودم انجام بدم و بعد آموزش شما رو میبینم تا ایرادات و ضعف هام مشخص بشه  این شد که اول پروژه، Entity ها رو با روابطشون تعریف و ایجاد کردم


  • 1405/06/29
  • ساعت 15:25

بسیار عالی 

در ادامه دوره به این موارد نیز خواهیم پرداخت