
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
آموزش پیکربندی رابطه یک به یک
آموزش پیکربندی رابطه یک به یک
پیکربندی رابطه یک به یک
ما در اینجا رابطه یک به یک را بین کلاس Student و کلاس StudentAddress پیکربندی می کنیم. همان طور که می دانید رابطه یک به یک زمانی برقرار می شود که کلید اولیه یک جدول تبدیل به PK و در جدول دیگری به FK(کلید خارجی) تبدیل می شود. StudentId کلید اولیه جدول Student است، بنابراین StudentId کلید اولیه باشد و همچنین در جدول StudentAddress کلید خارجی می باشد تا رابطه یک به یک (یک به صفر یا یک به یک) بین آنها برقرار شود.
پیکربندی رابطه یک به صفر یا یک به یک با استفاده از DataAnnotation
public class Student { public Student() { } public int StudentId { get; set; } [Required] public string StudentName { get; set; } [Required] public virtual StudentAddress StudentAddress { get; set; } } public class StudentAddress { [Key، ForeignKey("Student")] public int StudentId { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } public string City { get; set; } public int Zipcode { get; set; } public string State { get; set; } public string Country { get; set; } public virtual Student Student { get; set; } }
همان طور که در کلاس Student و StudentAddress می بینید، ما کار خاصی در کلاس Student انجام ندادیم زیرا کلاس StudentId از قراردادها (conventions) پیروی می کند بنابراین تبدیل به کلید اولیه (PK)می شود و اکنون ما از خصوصیت Key و ForeignKey برای فیلد StudentId در کلاس StudentAddress برای تبدیل آن به کلید اولیه و کلید خارجی استفاده می کنیم.و بنابراین یک رابطه یک به یک بین کلاس های Student و StudentAddress ایجاد می شود.
پیکربندی رابطه یک به یک با استفاده از Fluent API
protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .HasKey(e => e.StudentId); modelBuilder.Entity() .Property(e => e.StudentId) .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); modelBuilder.Entity() .HasRequired(e => e.Student) .WithRequiredDependent(s => s.StudentAddress); base.OnModelCreating(modelBuilder); }
قطعه کد نشان داده شده در بالا پایگاه داده زیر را ایجاد می کند.

شمامی توانید رابطه بین کلاس های Student و StudentAddress را در پایگاه داده را همانطور که در زیر نشان داده شده است را بررسی کنید.

اگر شما یک موجودیت مدل داده ای از پایگاه داده ساخته شده ایجاد کنید، دیاگرام آن به شکل زیر نشان داده خواهد شد.

شما نحوه ایجاد رابطه ای یک به چند را در قسمت بعدی یاد خواهید گرفت.