1
一個用於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
的第三數據模型,它本質上是一個組合ite customer
和address
模型。這可以讓我搭建一個強類型的視圖。
或者,控制器是否可以將2個模型傳遞給1個視圖?
我不知道這是解決這個問題的最好方法,或者實際上如果可能的話。有什麼想法嗎?
這可能需要使用'.Include()'來實際加載'Address'屬性;如果EF是延遲加載的東西,那麼'model.Address'在到達視圖時可能爲空。 – anaximander
好點。我會做筆記。 –