0

現在、次のクラスがあります。

public class Ticket
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }

    public int ClientId { get; set; }
    public virtual Client Client { get; set; }
    public virtual ICollection<Item> Items { get; set; }

    public Ticket()
    {
        Items = new List<Item>();
    }

}

public class Client
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }

    public virtual ICollection<Ticket> Tickets { get; set; }
}

public class Item
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public double Price { get; set; }

    public virtual ICollection<Ticket> Tickets { get; set; }
}

私の問題/質問は次のとおりです。新しいアイテム「Item1」を作成し、その価格を「3.00」に設定するとします。そのアイテムをいくつかの「チケット」に追加します。つまり、「Ticket1」:「Item1」、「 3.00"; 「Ticket2」: 「Item1」、「3.00」など。これらのアイテムをチケットに追加した後、「Item1」の価格を「4.00」に変更すると、すでに作成したチケットの価格が変更されます。価格変更後に作成されたチケットのみ価格を変更しますか?

これは私のチケットコントローラーです:

        [HttpPost]
    public ActionResult Create(TicketViewModel ticketViewModel)
    {
        if (ModelState.IsValid)
        {
            var ticket = new Ticket();
            ticket = ticketViewModel.Ticket;
            AddOrUpdateItems(ticket, ticketViewModel.Item);
            context.Tickets.Add(ticket);
            context.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(ticketViewModel);
    }

   private void AddOrUpdateItems(Ticket ticket, ICollection<AssignedItem> assignedItems)
    {
        foreach (var assignedItem in assignedItems)
        {
            if (assignedItem.Assigned)
            {
                var item = context.Items.Find(assignedItem.ItemId);
                ticket.Items.Add(item);
            }
        }
    }
4

0 に答える 0