Al intentar insertar varios registros mediante mi Repository y después intentar guardar los cambios, me aparecía este error:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
Esto ocurre cuando estás tratando de insertar un registro que rompe las reglas de validación. Por ejemplo, estás tratando de insertar un valor en un campo que no coincide con su tipo de dato o estás ingresando un texto “nvarchar” de mayor longitud al permitido.
Para poder visualizar los errores de validación que se están generando, agrega un “try…catch” en el momento en que guardas, de esta forma:
try
{
miRepositorio.Guardar();
}
catch (DbEntityValidationException dbEx)
{
foreach(var validationErrors in dbEx.EntityValidationErrors)
{
foreach(var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}",
validationError.PropertyName,
validationError.ErrorMessage);
}
}
}
Ahora corre tu aplicación en modo “debug” utilizando Visual Studio.
Abre la ventana “output” que encuentras en el menú Debug -> Windows -> Output.
La instrucción “Trace” va a escribir los errores en esta ventana. Es posible que el contenido de esta ventana esté lleno de información del “debugger”, si es así oprime CTRL-F y busca “Property:”, verás lo siguiente:
De esta forma podrás ver los errores que están apareciendo y modificar tu código para corregirlos.