PDA

View Full Version : سوال: ایجاد رابطه یک به چند داخل یک جدول با استفاده entityFrameWork



Black_Hammer
پنج شنبه 05 مرداد 1396, 22:32 عصر
با سلام
بنده قصد دارم که یک رابطه یک به چند داخل یک جدول با استفاده از entityFramework را ایجاد کنم . این جدول برای ذخیره کامنت های تو در توی می باشد ولی بنده نمی تونم رابطه رو ایجاد کنم لطفا راهنمایی کنید .
145892
این هم کلاس بنده می باشد
145893
مشکل بنده در تصویر دوم مشخص است

ali_md110
جمعه 06 مرداد 1396, 01:50 صبح
شما باید یک کالکشن از نوع همین کلاس بسازید و از طریق اتربیوتهای dataAnnotation یا کلاس های fluent api کلید های پدر فرزندی رو مشخص کنید
مثالی با dataAnnotation



[ForeignKey("ParentId")]
public virtual Comment Parent { set; get; }
public virtual int? ParentId { get; set; }
public virtual ICollection<Comment> Childrens { get; set; }

مثال با fluent api



public CommentConfig()
{
this.HasOptional(x => x.Parent)
.WithMany()
.HasForeignKey(x => x.ParentId)
.WillCascadeOnDelete(false);
}

RIG000
جمعه 06 مرداد 1396, 11:14 صبح
وقتی از WithMany استفاده میشه یعنی شما به چند اشاره میکنید. در مبحث child و Parent در یک جدول همیشه رکورد های parent اصلی بدون مقداری در parentId هستند . برای پیاده سازی کلی و نحوه نمایشه کامنت های تودر تو بهترین روش هم صرفا جهت اصلاع بدست اوردن یک لیست flat از این جدول هست و سپس برای نمایش آن با الگوریتم اول عمق کار میشه.
جواب دوست قبلی ما هم در خصوص سوال شما درست هست که می تونید ازش استفاده کنید.