Сначала я относительно новичок в коде MVC и EF и не могу найти решение этой проблемы.
Сначала я использовал код EF для создания 2 объектов: Invoice и InvoiceItem. Один Счет может иметь много экземпляров InvoiceItem. InvoiceItem может иметь только один экземпляр Invoice.
Фрагменты кода следующие:
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);
}
В качестве теста я просто пытаюсь создать один InvoiceItem для Invoice со следующим кодом
if (ModelState.IsValid)
{
_repository.Add(invoice);
_repository.Save();
invoice.InvoiceItems.Add(new InvoiceItem {Amount = 99});
return RedirectToAction("Index");
}
Когда он попадает в строку invoice.InvoiceItems.Add (), он выдает «Ссылка на объект не установлена на экземпляр объекта». ошибка.
Что мне не хватает?