添加具有子实体的实体(1:n)时,我获得了异常。 当调试器捕获所有异常时,我只能得到此异常。 不幸的是,只有异常的消息是可见的,而不是我需要的信息本身。 (System.Data.Entity.Validation.DbEntityValidationException) (当插入没有孩子的实体时,服务工作正常)
客户端获取MobileServiceInvalidOperationException:无法完成请求。 (错误请求)
控制器上的方法(PatchAppointment)是我可以添加异常处理的唯一方法,并且此处不会出现异常。
public Task<Appointment> PatchAppointment(string id, Delta<Appointment> patch)
{
try
{
return UpdateAsync(id, patch);
}
catch (Exception ex)
{
// not coming through here..
throw;
}
}
我还尝试在Httpconfiguration.Services中添加ExceptionLogger,但没有例外。
如何获取整个异常对象以查看EntityValidationErrors? 当知道这一点时,我也可以在发生异常时添加日志记录。
答案 0 :(得分:1)
你可以添加异常处理的“唯一方法中的PatchAppointment”是什么意思?如果您在插入时遇到问题,则必须检查PostAppointment而不是PatchAppointment。当您提到插入表格时遇到问题时,PatchAppointment会处理更新数据。
public async Task<IHttpActionResult> PostAppointment(Appointment item)
{
Appointment current = await InsertAsync(item);
return CreatedAtRoute("Tables", new { id = current.Id }, current);
}