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

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

کاربر سایت

pourya.montakhab

عضویت از 1397/07/14

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

  • چهارشنبه 1 اسفند 1397
  • 11:32
تشکر میکنم

سلام دوستان . 

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

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

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

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

محمد قاری

عضویت از 1395/02/07

  • چهارشنبه 1 اسفند 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 : یک به چند

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • چهارشنبه 1 اسفند 1397
  • 14:03

سلام

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

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)