اساتید عزیز خسته نباشید
بنده با یه مشکلی مواجه شدم.در تعریف کلاس ها به روش EF Code First به حالت زیر مشکلی که پیش میاد جدول Pages چهار تا کلید خارجی داره! در صورتی که باید دو تا داشته باشه.آیا در نحوه تعریف بنده ایرادی هست؟
در حالت کلی میخوام کاربری که رکورد رو ثبت کرده و کاربری که رکورد رو ویرایش کرده رو در جدول Pages داشته باشم
تعریف کلاس Pages:
public class Page
{
internal class Configuration : System.Data.Entity.ModelConfiguration.EntityTypeCo nfiguration<Page>
{
public Configuration()
{
HasRequired(current => current.ApplicationInsUser)
.WithMany(user => user.InsertedPages)
.HasForeignKey(current => current.ApplicationInsUserId)
.WillCascadeOnDelete(false);
HasOptional(current => current.ApplicationEditUser)
.WithMany(user => user.EditedPages)
.HasForeignKey(current => current.ApplicationEditUserId)
.WillCascadeOnDelete(false);
}
}
public Page()
{
// CreateTime = DateTime.Now;
}
[Key]
public int id { get; set; }
public string Onvan { get; set; }
[System.Web.Mvc.AllowHtml]
public string Content { get; set; }
public string ApplicationInsUserId { get; set; }
public virtual ApplicationUser ApplicationInsUser { get; set; }
public string ApplicationEditUserId { get; set; }
public virtual ApplicationUser ApplicationEditUser { get; set; }
}
}
و همچنین کلاس Users:
public virtual ICollection<Page> InsertedPages { get; set; }
public virtual ICollection<Page> EditedPages { get; set; }
وقتی فقط InsertUser رو به عنوان کلید خارجی تعریف میکنم مشکلی نیست و دیتابیس خیلی خوب و با یک کلید خارجی جنریت میشه اما وقتی EditUser رو هم اضافه میکنم کلید خارجی بجای 2 تا 4 تا ایجاد میشه !!!!