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

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

کاربر سایت

Hellgate

عضویت از 1396/08/28

ارور در زمان scafolding

  • پنجشنبه 10 اسفند 1396
  • 01:14
تشکر میکنم

سلام من داخل پروژه مجبور شدم از دوتا جدول داخل دیتابیسم استفاده کنم که را بطه یک به یک دارن و وضعیت رابشون هم با fluent api استفده شده و configuration هم استفاده کردم داخل dbContext همه چی درست کار میکنه ولی زمانی که میخام از scafolding استفده کنم رو یکی از این جدول ها نمیزاره و بهم ارور میده که ارورش هم داخل عکس میفزستم ببینید 

واقعا نمیدونم باید چیکار کنم ممنون میشم راهنمایی کنید

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

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

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 10 اسفند 1396
  • 09:21

کدد هاتون رو قرار بدید تا بررسی کنیم

کد های مدل را

کاربر سایت

Hellgate

عضویت از 1396/08/28

  • پنجشنبه 10 اسفند 1396
  • 10:30

این کد های مربوط به یکی زا مدل هاس

public class Category
    {
        public Category()
        {
            CategoryID = new Guid();
        }
        [Key]
        public Guid CategoryID { get; set; }
        [Display(Name = "نوع خدمت")]
        [Required(ErrorMessage = "لطفا{0}را وارد کنید")]
        [MaxLength(200, ErrorMessage = "تعداد کاراکتر بیش از حد مجاز است")]
        public string CategoryName { get; set; }
        public virtual ICollection<Service> Services { get; set; }
        public virtual CategoryDetail CategoryDetail { get; set; }

    }

و این کد مروبط به مدل دیگر هست که با مدل بالا رابطه یک به یک دارد

public class CategoryDetail
    {
        internal class Configuration : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<CategoryDetail>
        {
            public Configuration()
            {
                HasKey(current => current.CategoryID);
                HasRequired(current => current.Category)
                    .WithOptional(category => category.CategoryDetail)
                    .WillCascadeOnDelete(true);
            }
        }
        public CategoryDetail()
        {
            
        }
        
        
        [Display(Name = "عنوان")]
        [MaxLength(100, ErrorMessage = "تعداد کاراکتر بیش از حد مجاز است")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string Title { get; set; }
        [Display(Name = "عکس")]
        public string ImageName { get; set; }
        [Display(Name = "توضیح مختصر")]
        [MaxLength(300, ErrorMessage = "تعداد کاراکتر بیش از حد مجاز است")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [DataType(DataType.MultilineText)]
        public string ShortDescription { get; set; }
        [Display(Name = "توضیحات")]
        [DataType(DataType.MultilineText)]
        [AllowHtml]
        public string Text { get; set; }
        [Display(Name = "نوع دسته بندی")]
        public Guid CategoryID { get; set; }
        public virtual Category Category { get; set; }

    }

و این هم قسمت مربوط به dbcontext هست

public class MyCmsContext:DbContext
    {
        public MyCmsContext()
        {
            
        }

        protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
        {
            
            modelBuilder.Configurations.Add(new CategoryDetail.Configuration());
        }
        public DbSet<CategoryDetail> CategoryDetails { get; set; }

        public DbSet<Category> Categories { get; set; }
}

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 10 اسفند 1396
  • 12:21

Configuration را باید در خود Context قرار دهید

از مدل خارج کننید

کدها به نظر بدون مشکل هستند

کاربر سایت

Hellgate

عضویت از 1396/08/28

  • پنجشنبه 10 اسفند 1396
  • 12:36

کلا configuration رو براش یه کلاس جدا درست کردم و بعد داخل context اضافه کردم بازم همون ارور و میده واقعا موندم باید چیکار کنم

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

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

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

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