سلام

زمانی که با استفاده از Code First ارتباط بین دو جدول را با استفاده از کدها زیر ایجاد میکنم پیغام زیر نمایش داده میشه:


HasRequired(p => p.tblCountry)
.WithMany(p => p.tblState)
.HasForeignKey(p=>p.tblCountry.fldID)
.WillCascadeOnDelete(false);


Error.png

حالا وقتی کدها رو به شکل زیر اصلاح می کنم، بدون اشکال جدول ایجاد میشه:


HasRequired(p => p.tblCountry)
.WithMany(p => p.tblState)
.WillCascadeOnDelete(false);



سوال:
  1. چرا با حذف ویژگی HasForeignKey خطا برطرف میشه؟
  2. اگر تمام عبارت HasRequired حذف شوند باز هم ارتباط بین جداول ایجاد میشه. پس چرا باید از HasRequired استفاده کرد؟


ممنون اگر راهنمایی کنید