asp.net MVC

An exception of type System.Data.Entity.Validation.DbEntityValidationException occurred in EntityFramework.dll but was not handled in user code

An exception of type System.Data.Entity.Validation.DbEntityValidationException occurred in EntityFramework.dll but was not handled in user code, someone asked me to explain?

An exception of type 'System.Data.Entity.Validation.DbEntityValidationException' occurred in EntityFramework.dll but was not handled in user code

I got this above exception is thrown while saving the record using mvc application. I don’t know where the validation errors for the below c# code.

public ActionResult Create([Bind(Include = "CategoryId,Name,ShortDescription")] Category category)
        {
 
                if (ModelState.IsValid)
                {
                    db.Categories.Add(category);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            return View(category);
        } 

 

Solution:

You can see the validation errors during the debug in visual studio. Otherwise you can also catch the exception and show the errors to console or logging store. 

try
            {
                if (ModelState.IsValid)
                {
                    db.Categories.Add(category);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
            }
            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 valerror in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            valerror.PropertyName, valerror.ErrorMessage);
                    }
                }
                throw;
 
            }

 

Post your comments / questions