Установили настройку 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
имеет значение, то происходит следующее:
- SaveChanges() на WebAPI успешно называется.
- В моей попытке/поймать ошибок не обнаружено.
- «Результат», возвращенный клиенту, не имеет связанных с ним ошибок.
Однако, с клиентской стороны, 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 не получает его, и ошибка ТОЛЬКО происходит, если это необязательное поле внешнего ключа НЕ равно нулю.
Любые идеи?