У меня есть следующие классы моделей (я сначала использую EF-код для генерации таблиц).отношения один к одному между двумя моделями?
public class MyClass
{
....
[Required, ForeignKey("Address")]
public int Address1Id { get; set; }
virtual public Address Address1 { get; set; }
[Required, ForeignKey("Address")]
public int Address12d { get; set; }
virtual public Address Address2 { get; set; }
[Required, ForeignKey("Address")]
public int Address3Id { get; set; }
virtual public Address Address3 { get; set; }
....
}
public class Address { .... }
Я желаю создать вид MyClass
показывает все поля адреса и адреса будут сохранены в таблице Адрес первым при сохранении MyClass
. Но строительные леса создали поле DropDownList для адресов. Как изменить код, чтобы заставить его действовать, как эти поля адреса, закодированы в классе MyClass
напрямую и позволить контроллеру сохранять адреса в таблице Address
и AddressID
в таблице MyClass
?
<div class="editor-label">
@Html.LabelFor(model => model.Address1Id, "Address")
</div>
<div class="editor-field">
@Html.DropDownList("Address1Id", String.Empty)
@Html.ValidationMessageFor(model => model.Address1Id)
</div>
Update: Я попытался создать следующую ViewModel, но подмости жалуются там нет ключа, определенного в классе.
public class DealViewModel
{
public Deal Deal { get; set; }
public Address Address { get; set; }
}
- это проблема MVC или EF. MVC может использовать такие модели. EF ожидает тип, подходящий для ключа. Сложные типы подходят как ключи БД. Чего вы надеялись достичь? –