複数の顧客タイプを持つことができるオブジェクトCustomerがあり、各顧客タイプは複数の顧客を持つことができます。私はEFを初めて使用しますが、顧客を追加することができましたが、顧客の顧客タイプを追加するための構文も正しく理解できないようです。
私の顧客クラス(簡略化):
public partial class Customer
{
public virtual int Id { get; set;}
public virtual string Name { get; set;}
#region Navigation Properties
public virtual ICollection<CustomerType> CustomerTypes
{ get; set; }
#endregion
}
顧客タイプ:
public partial class CustomerType
{
public virtual int Id
{
get;
set;
}
public virtual string Name
{
get;
set;
}
#region Navigation Properties
public virtual ICollection<Customer> Customers
{ get; set; }
#endregion
}
このプロジェクトを実行すると、CustomerTypeCustomerテーブルがCustomer_Id列とCustomerType_Id列で作成されるため、これで問題ありません。
次に、次のように顧客を作成します。
// code behind
var customer = new Customer();
customer.name = txtCustomerName.Text;
using (var context = new MyEntities())
{
context.Customers.Add(customer);
context.SaveChanges();
}
私はここを見て、多対多のエンティティフレームワークを挿入/更新しました。どうすればいいのですか?顧客タイプと同様のことをしようとしました:
var customer = new Customer();
customer.name = txtCustomerName.Text;
// only starting with one customer type selected in a check box list
CustomerType customerType = context.CustomerTypes.FirstOrDefault(i => i.Id == 1);
using (var context = new MyEntities())
{
// IncidentTypes throws Object reference not set to an instance of an object
customer.CustomerTypes.add(customerType);
context.Customers.Add(customer);
context.SaveChanges();
}
ここで明らかな何かが欠けていますか?
前もって感謝します。
編集:何らかの理由で、私は.Add(AddToObject、AttachToなどはありません。