2016-05-04 4 views
0

Установили настройку Breeze с помощью WebAPI и EntityFramework.Ошибка WebApi при вызове SaveChanges() для breezeJs

Запросы EntityManager работают нормально. SaveChanges() работает нормально на все лицо, КРОМЕ ...

У меня есть объект с дополнительной соответствующей организацией:

Public Class Payment 
    Public Property Id As Integer 
    Public Overridable Property Registree As Registree 
    Public Property RegistreeId as Integer? 
    Public Property Amount as Double 
End Class 

Вот мое WebAPI действия для SaveChanges()

<HttpPost()> 
    Public Function SaveChanges(bundle As JObject) As SaveResult 
     Dim result As SaveResult 
     Try 
      result = breezeDb.SaveChanges(bundle) 
     Catch ex As Exception 
      Dim err = ex 
     End Try 
     Return result 
    End Function 

Когда я создаю новый объект Payment в Бриз и звоню в SaveChanges, все работает отлично, ЕСЛИ мой объект платежа имеет значение для RegistreeId.

Если RegistreeId имеет значение, то происходит следующее:

  1. SaveChanges() на WebAPI успешно называется.
  2. В моей попытке/поймать ошибок не обнаружено.
  3. «Результат», возвращенный клиенту, не имеет связанных с ним ошибок.

Однако, с клиентской стороны, manager.saveChanges() терпит неудачу, предоставив объект ошибки с НЕТ деталями, просто «Ответ получил код состояния HTTP 500».

return manager.saveChanges() 
       .then(function(saveResult){ 
       return saveResult; 
       }) 
       .catch(errorOnSave); //this gets called, no breakpoints get hit in the "then" function 

ПРИМЕЧАНИЕ: Сущность IS корректно сохраняется в базе данных, связанной сущности и всех. Таким образом, это не ограничение внешнего ключа или другая проблема с базой данных.

Так что, похоже, что что-то ломается на сервере, и сообщение об ошибке не доходит до клиента. Но мой try/catch не получает его, и ошибка ТОЛЬКО происходит, если это необязательное поле внешнего ключа НЕ равно нулю.

Любые идеи?

ответ

1

Нашел проблему ... не понял, что я не отключил пользовательские ошибки в web.config.

<system.web> 
    <customErrors mode="Off" /> 
    ... 
    </system.web> 

Тогда я был в состоянии видеть, что Json.Net был запущен в нулевую ошибку исключения при разборе saveresult.

Смежные вопросы