سلام دوستان .
من در پروژم دوتا جدول دارم یکی مختص محصولاتم و دیگری برای تخفیف های محصولاتم .
مثلا محصولات مختلفی رو ثبت کرده ام و بر اساس نیاز میخوام در زمان های مختلف برای هر محصولم تخفیفی در نظر بگیرم .
ارتباط بین این دو جدول به چه صورته نمیتونم تشخیص بدم . طراحی جدول هام به صورت CodeFirst هست .
سلام
جداول به صورت زیر ساخته میشن:
جدول discountCode:
public class DiscountCode { #region Properties [Key] public long DiscountCodeId { get; set; } [Display(Name = "کد")] [MaxLength(100, ErrorMessage = "تعداد کاراکتر های {0} نمیتواند بیشتر از {1} باشد")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public string Code { get; set; } [Display(Name = "مقدار")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public int Value { get; set; } [Display(Name = "تعداد قابل مصرف")] [Required(ErrorMessage = "لطفا {0} را وارد کنید")] public int UsageCount { get; set; } [Display(Name = "تاریخ انقضا")] public DateTime ExpireTime { get; set; } [Display(Name = "عمومی / خاص")] public bool IsGeneral { get; set; } #endregion #region Relations public ICollection<DiscountCodeProduct> DiscountCodeProducts { get; set; } #endregion }
جدول DiscountCodeCourse
public class DiscountCodeCourse { #region Properties [Key] public long DiscountCodeCourseId { get; set; } public long DiscountCodeId { get; set; } public long ProductId { get; set; } #endregion #region Relations public DiscountCode DiscountCode { get; set; } public Product Product { get; set; } #endregion }
شما یک کد تخفیف دارید که میتونید به یک یا چند محصول مربوط کنید پس بین جدول discountCode و Product یک جدول واسط قرار میدید
نوع رابطه ها
discountCode به DiscountCodeCourse : یک به چند
Product به DiscountCodeCourse : یک به چند
سلام
پیرو فرمایش جناب آقای قاری، فقط عارضم به اینکه یک default constructor هم در هر دو کلاس ایجاد کرده و پراپرتی DiscountCodeProducts را هم بصورت virtual دراورید
این در واقع Lazy Load را هم براتون پیاده سازی می کنه
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)