我有以下模型类(我首先使用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
中编码,并让控制器将表和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>
更新: 我试图创建下面的视图模型,但脚手架抱怨没有在类中定义键。
public class DealViewModel
{
public Deal Deal { get; set; }
public Address Address { get; set; }
}
这是一个MVC或EF问题。 MVC可以使用这种模型。 EF期望适用于某个键的类型。复杂类型适合作为DB键。你希望达到什么目的? – 2013-02-17 07:24:41