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

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

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

علت پیغام Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

  • شنبه 20 شهریور 1395
  • 17:49
تشکر میکنم

با سلام.

علت این پیغام چیست؟

لطفا راهنمایی نمایید

با تشکر

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

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

ایمان مدائنی

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

  • شنبه 20 شهریور 1395
  • 17:54

مدلتون رو Valid نشده

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

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 18:43

با تشکر

مدل valid میشه

از viewmodel زیر استفاده می کنم:

 public class TechersViewModel
    {
        [Required(ErrorMessage = "*")]
        public string Name { get; set; }
        [Required(ErrorMessage = "*")]
        public string Family { get; set; }
        [Required(ErrorMessage = "*")]
        public string ShSh { get; set; }
        [Required(ErrorMessage = "*")]
        public string MelliCode { get; set; }
        public byte[] Pic { get; set; }
        [Required(ErrorMessage = "*")]
        public string mobile { get; set; }
        public string Email { get; set; }
        public string birthDate { get; set; }
        /////////////////////// Teacher///////////////////////
        public string UserID { get; set; }
        [Required(ErrorMessage = "*")]
        public byte RelationID { get; set; }
        [Required(ErrorMessage = "*")]
        public byte DegreeEducationID { get; set; }
        [Required(ErrorMessage = "*")]
        public string DateGive { get; set; }
        [Required(ErrorMessage = "*")]
        public byte AcademicRankID { get; set; }
        [Required(ErrorMessage = "*")]
        public byte MaritalStatusID { get; set; }
        [Required(ErrorMessage = "*")]
        public byte FieldOfStudyID { get; set; }
        [Required(ErrorMessage = "*")]
        public string Trend { get; set; }


    }

یعنی نوع موجود در viewmodel با دیتابیس همخوانی ندارد؟

لطفا راهنمایی نمایید

با تشکر

کاربر سایت

ایمان مدائنی

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

  • شنبه 20 شهریور 1395
  • 18:45

خیر

یعنی یکی از مقادیری که صفت Required گذاشتید پر نمیشود و خالی است

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 18:58

استاد مدل valid میشه

کاربر سایت

ایمان مدائنی

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

  • شنبه 20 شهریور 1395
  • 19:11

این ارور در کدام خط رخ میدهد ؟

اگر در SaveChanges باشد مشکل از مدل خود انتیتی است

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

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 19:15

در خط زیر و هنگام ساحت user :

 var result = await UserManager.CreateAsync(user, model.Name);

 

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 19:18

شکل بالا نشان می دهد تمام مقادیر پر می شوند

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • شنبه 20 شهریور 1395
  • 19:51

با سلام

دوست عزیز ViewModel  شما پر میشه اما مدل اصلی که میخواهید ذخیره کنید یکی از فیلد هاش پر نمیشه یا مقدار اشتباهی بهش پاس داده میشه با استفاده از کد زیر ببیند کدوم فیلد پر نمیشه

     try
            {
                // Your code...
                // Could also be before try if you know the exception occurs in SaveChanges

                context.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }

 

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 20:11

یک فیلدی هست که توی viewmodel پر هست اما در قسمت catch نشون می ده که null هست.

چیکارش کنم؟

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • شنبه 20 شهریور 1395
  • 20:19

حتما دارید اشتباهی پاس مییدید به مدل  ، چک کنید یا کدتون رو قرار بدید تا بررسی کنیم

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

  • شنبه 20 شهریور 1395
  • 20:27

این کدها است:

var user = new ApplicationUser();
                                user.Name = model.Name;
                                user.UserName = model.Name;
                                user.Email = model.Email;
                                user.Family = model.Family;
                                user.ShSh = model.ShSh;
                                user.MelliCode = model.MelliCode;
                                user.PhoneNumber = model.mobile;
                                user.birthDate = model.birthDate;
                                if (file1 != null)
                                {
                                    if (file1.ContentLength > 0)
                                    {
                                        byte[] b = new byte[file1.ContentLength];
                                        file1.InputStream.Read(b, 0, file1.ContentLength);
                                        user.Pic = b;
                                    }
                                }
                                var result = await UserManager.CreateAsync(user, "123");

همانطور که در زیر می بینید Viewmodel  پر شده است و فیلدی به نام gender دارای مقدار است:

اما در قسمت catch مانند شکل زیر می بینید که فیلد grnder برابر null است:

لطفا راهنمایی نمایید

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

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

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

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