سلام
برای رابطه بین دو کلاس (مدل) Article و Course و Episode با کلاس Comment درصورتی که نخوایم برای هرکدام کلاس کامنت متفاوت داشته باشیم باید چه کرد؟
من در ابتدا اومدم کلاس Comment و Commentable رو بصورت زیر تعریف کردم:
public class Comment
{
[Key]
public int CommentId { get; set; }
public string Text { get; set; }
public DateTime CreateAt { get; set; }
[ForeignKey("Commentable")]
public int CommentableId { get; set; }
public virtual Commentable Commentable { get; set; }
}
public class Commentable
{
[Key]
public int CommentableId { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
و کلاس های Article ، Course و Episode رو از Commentable ارثبری دادم اما Entity Framework به کلیدهای داخل این سه جدول گیر میده و میگه نباید در این سه کلاس، ستونی کلید داشته باشه.
ممنون میشم اگر کسی تجربه داره، راهنماییم کنه❤️
سلام. بنظر من یک جدول داشته باش به نام Contents (کد زیر فقط یک مثال است):
public class Contents{
public string Id { get; set; }
public string UserID { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
}
حالا Article ، Course و Episode را یک کلید خارجی بده به جدول Content. فیلدهای مشترکت را در جدول Content درست کن مثل تاریخ و عنوان و شناسه نویسنده و ... . فیلدهایی تخصصی تر را داخل همان Article ، Course و Episode بنویس.
حالا جدول Comment با جدول Contents ارتباط یک به چند داره. این شکلی میتونی مشکلت را حل کنی. البته این یک راهش هست و قطعا ممکنه مزایا و معایبی داشته باشه. اما حداقل کار شما را راه می اندازه.
آموزش Asp.net Core 5 بصورت پروژه محور
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟