CamDiGi
0 محصولات نمایش سبد خرید

هیچ محصولی در سبد خرید نیست.

تعریف رابطه چند به چند Entity Framework Code First

مثال) مشتری های شما می خواهند از تعرفه پیامک هایی که قبلاً در جای دیگر تعریف کرده اید؛ استفاده کنند. برای همین می توانید به هر مشتری (many)، هر تعرفه پیامکی (many) که می خواهید اختصاص دهید.

در نتیجه رابطه چند به چند است.

ابتدا جدول تعرفه پیامک را مشاهده کنید:

/// <summary>
/// تعرفه پیامک
/// </summary>
public class SmsFee
{
/// <summary>
/// کد تعرفه پیامک
/// </summary>
public long SmsFeeId { get; set; }

/// <summary>
/// نام تعرفه پیامک
/// </summary>
public string SmsFeeName { get; set; }

/// <summary>
/// قیمت هر پیامک
/// </summary>
public long? Fee { get; set; }

/// <summary>
/// نوع تعرفه پیامک:
/// ۱- تبلیغاتی
/// ۲- خدماتی
/// </summary>
public TypeOfSmsFee? TypeOfSmsFee { get; set; }

/// <summary>
/// حذف؟
/// </summary>
public bool? IsDeleted { get; set; }

/// <summary>
/// فعال؟
/// </summary>
public bool? Active { get; set; }

/// <summary>
/// ارتباط چند به چند
/// </summary>
public ICollection<Customer> Customers { get; set; }
}

به انتهای فایل کلاس مشتری اضافه شود:

/// <summary>
/// ارتباط چند به چند
/// </summary>
public ICollection<SmsFee> SmsFees { get; set; }

سپس در فایل کانفیگ همین کلاس موارد زیر را قرار می دهیم:

public class CustomerConfig : EntityTypeConfiguration<Customer>
{

public CustomerConfig()

{

//نام جدول که در دیتابیس ساخته می شود

ToTable("tbl_Customer");

//تنظیم خصوصیت کلید اصلی که اتونامبر نباشد با توجه به اینکه آخر نام فیلد آی دی گذاشتیم کلید تعریف می شود.
Property(x => x.CustomerId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

//بیشترین طول رشته nvarchar(n)
Property(x => x.CustomerName).HasMaxLength(50);
Property(x => x.CompanyName).HasMaxLength(100);
Property(x => x.Tell).HasMaxLength(12);

//تعریف ارتباط چند به چند
HasMany(x => x.SmsFees) //جدول خارجی + s => icollaction...
.WithMany(t => t.Customers) //جدول اصلی + s
.Map(mc =>
{
mc.MapLeftKey("CustomerId");//کلید اصلی
mc.MapRightKey("SmsFeeId");// کلید جدول خارجی
mc.ToTable("tbl_CustomerSmsFee");//نام جدول چند به چند که در دیتابیس ساخته می شود
});
}
}

پایان

0
دیدگاه‌های نوشته

*
*