مشخصات مقاله
-
2934
-
0.0
-
10085
-
0
-
0
آموزش پیکربندی رابطه ی یک به چند
آموزش پیکربندی رابطه ی یک به چند
خوب ما قصد داریم یک رابطه یک به چند بین کلاس های Student و Standard را پیاده سازی کنیم همان طور که بسیاری از دانشجویان در یک استاندارد تحصیل می کنند
پیاده سازی رابطه یک به چند با استفاده از DataAnnotation
کلاس Student یک مشخصه ارجاعی از کلاس Standard با مشخصه کلید خارجی StandardId دارد و کلاس Standard یک مشخصه collection برای دانشجویان دارد. بنابراین این DataAnnotation با نتیجه رابطه یک به چند حاصل می شود.
public class Student
{
public Student() { }
public int StudentId { get; set; }
[Required]
public string StudentName { get; set; }
public int StdandardId { get; set; }
public virtual Standard Standard { get; set; }
}
public class Standard
{
public Standard()
{
StudentsList = new List();
}
public int StandardId { get; set; }
public string StandardName { get; set; }
public string Description { get; set; }
public virtual ICollection Students { get; set; }
}
پیکربندی رابطه یک به چند با استفاده از Fluent API
فرض می کنیم که کلاس Student و کلاس Standard از قوانین Code-First پیروی نمی کنند و اسم های متفاوتی برای مشخصه ها دارند.
public class Student
{
public Student(){ }
public int StudentId { get; set; }
[Required]
public string StudentName { get; set; }
//StdId is not following code first conventions name
public int StdId { get; set; }
public virtual Standard Standard { get; set; }
}
public class Standard
{
public Standard()
{
StudentsList = new List();
}
public int StandardId { get; set; }
public string StandardName { get; set; }
public string Description { get; set; }
public virtual ICollection StudentsList { get; set; }
}
بنابراین شما با استفاده از Fluent API می توانید یک رابطه یک به چند را بین کلاس های Student و Standard پیاده سازی کنید
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//one-to-many
modelBuilder.Entity().HasRequired(s => s.Standard)
.WithMany(s => s.StudentsList).HasForeignKey(s => s.StdId);
}
و روش دیگری هم به شکل زیر وجود دارد
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//one-to-many
modelBuilder.Entity().HasMany(s => s.StudentsList)
.WithRequired(s => s.Standard).HasForeignKey(s => s.StdId);
}
کد بالا نشان داده شده بالا پایگاه داده زیر را ایجاد می کند.

مدل داده در designer به شکل دیاگرام پایین نشان داده می شود.

1394/07/27
10085
2934
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com