find out the exact entity causing an exception in entity framework -


the entity framework gives me generic messages in exception without telling me exact entity , attribute caused error. how more information error?

this happens in many cases such

the operation failed: relationship not changed because 1 or more of foreign-key properties non-nullable. when change made relationship, related foreign-key property set null value. if foreign-key not support null values, new relationship must defined, foreign-key property must assigned non-null value, or unrelated object must deleted.

and

the conversion of datetime2 data type datetime data type resulted in out-of-range value. statement has been terminated.

exception details:

[sqlexception (0x80131904): conversion of datetime2 data type datetime data type resulted in out-of-range value. statement has been terminated.] system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) +404 system.data.sqlclient.tdsparser.throwexceptionandwarning() +412 system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) +2660 system.data.sqlclient.sqldatareader.consumemetadata() +59 system.data.sqlclient.sqldatareader.get_metadata() +118 system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) +6431425 system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) +6432994 system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) +538 system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method) +28 system.data.sqlclient.sqlcommand.executereader(commandbehavior behavior, string method) +256 system.data.sqlclient.sqlcommand.executedbdatareader(commandbehavior behavior) +19 system.data.mapping.update.internal.dynamicupdatecommand.execute(updatetranslator translator, entityconnection connection, dictionary2 identifiervalues, list1 generatedvalues) +270 system.data.mapping.update.internal.updatetranslator.update(ientitystatemanager statemanager, ientityadapter adapter) +391

[updateexception: error occurred while updating entries. see inner exception details.] system.data.mapping.update.internal.updatetranslator.update(ientitystatemanager statemanager, ientityadapter adapter) +11223976 system.data.objects.objectcontext.savechanges(saveoptions options) +833 system.data.entity.internal.internalcontext.savechanges() +218

[dbupdateexception: error occurred while updating entries. see inner exception details.] system.data.entity.internal.internalcontext.savechanges() +291

here's code have in solution:

try {     _context.savechanges(); } catch (system.data.entity.validation.dbentityvalidationexception dbex) {     exception raise = dbex;     foreach (var validationerrors in dbex.entityvalidationerrors)     {         foreach (var validationerror in validationerrors.validationerrors)         {             string message = string.format("{0}:{1}", validationerrors.entry.entity.tostring(), validationerror.errormessage);             //raise new exception inserting current 1 innerexception             raise = new invalidoperationexception(message , raise);         }     }     throw raise; } 

you can use basis add solution ... builds nested set of exceptions details entity framework.


Comments

Popular posts from this blog

linux - Does gcc have any options to add version info in ELF binary file? -

android - send complex objects as post php java -

charts - What graph/dashboard product is facebook using in Dashboard: PUE & WUE -