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

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

کاربر سایت

علی شهریاری

عضویت از 1393/05/30

کار نکردن متد seed در migration

  • چهارشنبه 20 اردیبهشت 1396
  • 16:28
تشکر میکنم

با سلام و خسته نباشد

کد زیر مربوط به دسته بندی هست که با code first  پیاده سازی شده 

 public class Category
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [Required(ErrorMessageResourceName = "IsRequired", ErrorMessageResourceType = typeof(Error))]
        [Display(Name = "Name", ResourceType = typeof(Languages.Resources.DomainLabel))]
        [StringLength(500, ErrorMessageResourceName = "Between", ErrorMessageResourceType = typeof(Error), MinimumLength = 1)]
        public string Name { get; set; }
        [ForeignKey("Parent")]
        [Display(Name = "Parent", ResourceType = typeof(DomainLabel))]
        public Nullable<int> ParentId { get; set; }
        public virtual Category Parent { get; set; }
        [ForeignKey("Language")]
        public int LanguageId { get; set; }
        public virtual Language Language { get; set; }

    }

و کد زیر هم داخل متد seed  نوشتم 

 db.Roles.AddOrUpdate(

               new IdentityRole { Name = "SuperAdmin" },
               new IdentityRole { Name = "Admin" },
               new IdentityRole { Name = "Registred" }
             );
            db.Languages.AddOrUpdate(

             new Language { Name = "فارسی", Cultur ="fa", IsActive = true },
             new Language { Name = "English", Cultur = "en", IsActive = true },
             new Language { Name = "العربی", Cultur = "ar", IsActive = true }
           );
            db.SaveChanges();
            db.Categores.AddOrUpdate(
                new Category { Name = "دسته بندی نشده", LanguageId = db.Languages.SingleOrDefault(s => s.Cultur.Equals("fa")).Id, Parent = new Category() },
                new Category { Name = "Uncategorized", LanguageId = db.Languages.SingleOrDefault(s => s.Cultur.Equals("en")).Id, Parent = new Category() },
                new Category { Name = "غير مصنف", LanguageId = db.Languages.SingleOrDefault(s => s.Cultur.Equals("ar")).Id, Parent = new Category() }
                );

اطلاعات مربوط به جدول languages  و جدول  roles داخل دیتابیس ثبت میشه البته در صورتی که دستور مربوط به جدول Categores رو پاک کنم , دلیلش هم بخاطر اینکه جدول Categores یه کلید خارجی داره که به خودش وصل شده ولی نمیدونم کدش رو چطور باید بنویسم که جواب بده

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

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

ایمان مدائنی

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

  • چهارشنبه 20 اردیبهشت 1396
  • 16:48

ابتدا در گروه ها ، گروه های والد را ثبت کنید و بعد زیر گروه ها

کاربر سایت

علی شهریاری

عضویت از 1393/05/30

  • چهارشنبه 20 اردیبهشت 1396
  • 17:07

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

متن error  در زمان update-databas

Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

این کد رو هم نوشتم به صورت تکی بازم جواب نداد

 db.Categores.AddOrUpdate(
                 new Category
                 {
                     Name = "دسته بندی نشده",
                     LanguageId = db.Languages.SingleOrDefault(s => s.Cultur.Equals("fa")).Id
                 });

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 21 اردیبهشت 1396
  • 10:20

مشکل فکر کنم در صفت های اعتباری سنجی که دادید هست یا مقداری نا معتبر سمت بانک ارسال میشه

متن ارور به این اشاره داره

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

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

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

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