1 つは 用customer
、もう 1 つは 用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
モデルの合成である と呼ばれる 3 番目のデータ モデルを作成する必要があるということです。これにより、強く型付けされたビューを足場にすることができます。
あるいは、コントローラが 2 つのモデルを 1 つのビューに渡すことは可能ですか?
これがこの問題に取り組む最善の方法なのか、実際に可能かどうかはわかりません。何かご意見は?