如果您尝试将长度为500的字符串保存到Sql Server中一个nvarchar(255)的列中,您将获得server:
port: 8084
。
在致电DbUpdateException
之前,有没有办法检查此错误?也许在将实体添加到上下文中时?
答案 0 :(得分:2)
在调用SaveChanges之前有没有办法检查此错误?也许在将实体添加到上下文中时?
是。可以通过在DbContext
上调用此方法GetValidationErrors()
,如下所示,但只有在实体类中使用data annoations attributes时才会得到验证错误结果
var validationResults = dbContext.GetValidationErrors();
validationResults
将包含DbEntityValidationResult
的集合,因此如果为空,则您的跟踪实体有效。然后紧接着调用SaveChanges
将不会抛出有关数据验证的异常,但您仍然可以获得其他一些例外情况,这些异常只能在服务器端进行检查,例如:并发异常,唯一或引用约束异常等。