У меня есть таблица поставщиков (объект продавца), где один из столбцов - это ссылка NULLABLE по внешнему ключу на мою таблицу учетных записей (объект Account). В моей форме редактирования я показываю список учетных записей как раскрывающийся список. У меня нет проблем с установкой значения или обновлением значения для другой учетной записи.Убрать внешнее значение ключа для приложения MVC
Однако я не смог очистить значение. Каждый раз, когда я это делаю, вызов UpdateModel() или, может быть, вызов Save(), кажется, терпит неудачу (нет ошибок модели). Я попытался выполнить код, но мне не удалось получить согласованные результаты, поэтому я не могу определить точную проблему, но все это, похоже, указывает на ссылку FK. Я попытался явно установить значение Nothing, но это не работает.
Это мой первоначальный код.
<AcceptVerbs(HttpVerbs.Post)> _
Public Function Edit(ByVal id As String, ByVal formValues As FormCollection) As ActionResult
Dim vendor = _repo.GetVendor(id)
Try
UpdateModel(vendor)
_repo.Save()
Return RedirectToAction("Index")
Catch
ModelState.AddRuleViolations(vendor.GetRuleViolations())
ViewData.Item("Accounts") = Models.DropDownPopulators.PopulateAccounts(_accounts.FindAllAccounts(), vendor.DefaultAccount)
Return View(vendor)
End Try
End Function
Я даже попытался добавить следующее после обновления. Я также попытался сделать то же самое с значением формы перед обновлением.
If (vendor.DefaultAccount.Equals("")) Then vendor.DefaultAccount = Nothing
Можем ли мы увидеть метод 'Сохранить' вашего репозитория? Кроме того, вы на 100% уверены, что 'vendor' находится в текущей коллекции репозитория? –
Мне пришлось отправить ответ как ответ, потому что все форматирование (включая разрывы строк) лишены. Не уверен, что это правильный способ сделать это ... – Jason