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

Today I encountered an error during data insertion through Entity Framework as per the Title.
There could be a various cause of such issue .Here I am talking about one of them.In database I restricted Name column data Type to nvarchar(10).
and I was inserting value which has more than 10 character.

As soon as I try to insert value it generates me an error as depicted below:

.
I have used the code as shown below to identify the root cause.
1: public ActionResult Create(EmpRegistration collection)
2: {
3: try
4: {
5:
6: }
7: catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
8: {
9: Exception raise = dbEx;
10: foreach (var validationErrors in dbEx.EntityValidationErrors)
11: {
12: foreach (var validationError in validationErrors.ValidationErrors)
13: {
14: string message = string.Format("{0}:{1}",
15: validationErrors.Entry.Entity.ToString(),
16: validationError.ErrorMessage);
17: // raise a new exception nesting
18: // the current instance as InnerException
19: raise = new InvalidOperationException(message, raise);
20: }
21: }
22: throw raise;
23: }
24: }
This code help you to trace exact error.The way it suggested to me that “The field Name must be a string or array type with a maximum length of '10'.”
This is the complete code which runs perfectly as shown below .I
wish this code will help you sometime.
1: public ActionResult Create(EmpRegistration collection)
2: {
3: try
4: {
5: if (ModelState.IsValid)
6: {
7: EmpRegistration empRegis = new EmpRegistration();
8: // TODO: Add insert logic here
9: empRegis.Address = collection.Address;
10: empRegis.City = collection.City;
11: empRegis.Id = 7;
12: empRegis.Name = collection.Name;
13: objEnity.EmpRegistrations.Add(empRegis);
14: objEnity.SaveChanges();
15:
16: return View();
17: }
18: return View(objEnity.EmpRegistrations);
19: }
20: catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
21: {
22: Exception raise = dbEx;
23: foreach (var validationErrors in dbEx.EntityValidationErrors)
24: {
25: foreach (var validationError in validationErrors.ValidationErrors)
26: {
27: string message = string.Format("{0}:{1}",
28: validationErrors.Entry.Entity.ToString(),
29: validationError.ErrorMessage);
30: // raise a new exception nesting
31: // the current instance as InnerException
32: raise = new InvalidOperationException(message, raise);
33: }
34: }
35: throw raise;
36: }
37: }
To learn more about MVC please go through the following link.
MVC Articles
Enjoy coding and reading