一个为customer
,一个为address
。
所需功能当客户注册时,他们会在同一视图中输入他们的个人详细信息,例如姓名、电话以及地址详细信息。
当前功能 目前,EF 脚手架提供了一个地址下拉列表可供选择。
当前代码
public class Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
[Required]
public string Surname { get; set; }
[Required]
...
Customer Fields
...
public int AddressId { get; set; }
public virtual Address Address { get; set; }
}
public class Address
{
[Key]
public int AddressId { get; set; }
...
Address Fields
...
// Navigation Properties
public virtual List<Customer> Customer { get; set; }
}
在为数据库播种时,我可以这样做:
new List<Customer>
{
new Customer
{
** Customer Fields ** ,
Address = new Address { ** Address Fields ** }
}
}.ForEach(c => context.Customers.Add(c));
base.Seed(context);
我的想法
我最初的想法是我应该创建一个名为的第三个数据模型CustomerWithAddress
,它本质上是一个customer
模型的组合address
。这将允许我搭建一个强类型视图。
或者,控制器是否可以将 2 个模型传递给 1 个视图?
我不知道这是否是解决此问题的最佳方法,或者实际上是否可能。有什么想法吗?