مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

تشخیص ارتباط بین دو جدول در طراحی CodeFirst

چهارشنبه, 01 اسفند 1397 11:32

تشخیص ارتباط بین دو جدول در طراحی CodeFirst

سلام دوستان . 

من در پروژم دوتا جدول دارم یکی مختص محصولاتم و دیگری برای تخفیف های محصولاتم .

مثلا محصولات مختلفی رو ثبت کرده ام و بر اساس نیاز میخوام در زمان های مختلف برای هر محصولم تخفیفی در نظر بگیرم .

ارتباط بین این دو جدول به چه صورته نمیتونم تشخیص بدم . طراحی جدول هام به صورت CodeFirst هست . 

چهارشنبه, 01 اسفند 1397 13:05

سلام

جداول به صورت زیر ساخته میشن:

جدول 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 : یک به چند

چهارشنبه, 01 اسفند 1397 14:03

سلام

پیرو فرمایش جناب آقای قاری، فقط عارضم به اینکه یک default constructor  هم در هر دو کلاس ایجاد کرده و پراپرتی DiscountCodeProducts  را هم بصورت virtual  دراورید

این در واقع Lazy Load  را هم براتون پیاده سازی می کنه

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید