私は比較的MVCとEFコードが新しく、この問題の解決策を見つけることができません。.NET MVC 3/EFコードファースト - 関連エンティティの追加
EFコードを使用して、2つのエンティティ、請求書とInvoiceItemを作成しました。 1つの請求書にはInvoiceItemのインスタンスが多数存在することがあります。 InvoiceItemはInvoiceのインスタンスを1つしか持てません。
コードスニペットを次のように試験として
public class Invoice
{
[ScaffoldColumn(false)]
public int InvoiceId { get; set; }
public string Description { get; set; }
public virtual ICollection<InvoiceItem> InvoiceItems { get; set; }
}
public class InvoiceItem
{
[ScaffoldColumn(false)]
public int InvoiceItemId { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:C}")]
public decimal Amount { get; set; }
public virtual Invoice Invoice { get; set; }
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Invoice>().HasMany(i => i.InvoiceItems);
modelBuilder.Entity<InvoiceItem>().HasRequired(i => i.Invoice);
}
を、私は次のコード
if (ModelState.IsValid)
{
_repository.Add(invoice);
_repository.Save();
invoice.InvoiceItems.Add(new InvoiceItem {Amount = 99});
return RedirectToAction("Index");
}
と請求書のために1 InvoiceItemを作成しようとしていますinvoice.InvoiceItems.Add()行に到達すると、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」がスローされます。エラー。
私には何が欠けていますか?
をそれは私が行方不明だった明らかなものだろう。感謝@サントス2番目のソリューションは魅力のように働いた - 私は公共のプロパティを仮想化しなければならなかった。 –