Мне нужен совет по порядку выбора выпадающего списка и сохранению выбора с помощью POCO EF, пожалуйста.
У меня есть список IEnumerable<Country>
в моей модели представления, где Страна - это POCOзагружается через EF.В модели представления есть свойство Address, которое принимает текущее или выбранное пользователем значение в свойстве Country.В представлении я отображаю их с помощью Html.DropdownListFor (), таким образом:
Html.DropDownListFor(model => model.Address.Country.Id, new SelectList(Model.Countries,"Id","Name",model.Address.Country.Id)
Пока все хорошо, и все это работает при обратной передаче с ModelBinder по умолчанию, предоставляя мне модель представления с заполненной Address.Country,Однако Address.Country, конечно, только заполняется полем Id с привязкой модели по умолчанию.
Попытка отправить обновление адреса обратно в БД через EF срывается, так как это рассматривается как новый объект, который незагрузите полный граф объектов, установите только Id.
Теперь я могу это исправить, загрузив полный объект Country из базы данных в свойство Address.Country при обратной передаче перед сохранением на основе выбранного Id.Но это похоже на тяжелую работу для чего угодно, кроме простого графов объектов.
Самым «элегантным» решением, которое я мог бы придумать, было бы создание пользовательского механизма связывания моделей для Country, но тогда для этого потребовалось бы связывание моделей.знать о хранилище для получения полного объекта EF, что мне не кажется правильным.Я также должен повторить это для всех других сущностей, используемых в выпадающих списках.
Надеюсь, это имеет смысл, и любые отзывы о том, как это делают другие, будут оценены.