Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有列表对象的ASP.NET Core 3.0 MVC更新模型-添加对象_C#_Asp.net_Asp.net Mvc_Asp.net Core Mvc_Asp.net Core 3.0 - Fatal编程技术网

C# 具有列表对象的ASP.NET Core 3.0 MVC更新模型-添加对象

C# 具有列表对象的ASP.NET Core 3.0 MVC更新模型-添加对象,c#,asp.net,asp.net-mvc,asp.net-core-mvc,asp.net-core-3.0,C#,Asp.net,Asp.net Mvc,Asp.net Core Mvc,Asp.net Core 3.0,我有以下课程: public class Invoice { [key] public Guid InvoiceID { get; set; } public string Name { get; set; } public List<Invoice_item> Invoice_items { get; set; } public Invoice() { InvoiceID = Guid

我有以下课程:

public class Invoice
{    
     [key]
     public Guid InvoiceID { get; set; }
     public string Name { get; set; }
     public List<Invoice_item> Invoice_items { get; set; }
     
     public Invoice()
     {
         InvoiceID = Guid.NewGuid();
         Invoice_items = new List<Invoice_item>();
     }
} 
它很好用。我可以编辑这个模型。 控制员:

Invoice invoice = await _context.Invoice.Include(i => i.Invoice_items).Where(x => x.InvoiceID == id).FirstOrDefaultAsync();

invoice.Name = "2020/122";
invoice.Invoice_items[0].Description = "Some name";
invoice.Invoice_items[0].Price = 1;
invoice.Invoice_items[0].qty = 1;

_context.Update(invoice);
await _context.SaveChangesAsync();

// WORK OK
Invoice invoice = await _context.Invoice.Include(i => i.Invoice_items).Where(x => x.InvoiceID == id).FirstOrDefaultAsync();

invoice.Name = "2020/122";
invoice.Invoice_items[0].Description = "Description 1";
invoice.Invoice_items[0].Price = 1;
invoice.Invoice_items[0].qty 1;

Invoice_item item = new Invoice_item()
{
  Description = "Description 2",
  Price = 2,
  qty = 2
};

invoice.Invoice_items.Add(item);   // PROBLEM
                       
_context.Update(invoice);
await _context.SaveChangesAsync();
但问题是,当我想在列表中添加一个项目时: 控制员:

Invoice invoice = await _context.Invoice.Include(i => i.Invoice_items).Where(x => x.InvoiceID == id).FirstOrDefaultAsync();

invoice.Name = "2020/122";
invoice.Invoice_items[0].Description = "Some name";
invoice.Invoice_items[0].Price = 1;
invoice.Invoice_items[0].qty = 1;

_context.Update(invoice);
await _context.SaveChangesAsync();

// WORK OK
Invoice invoice = await _context.Invoice.Include(i => i.Invoice_items).Where(x => x.InvoiceID == id).FirstOrDefaultAsync();

invoice.Name = "2020/122";
invoice.Invoice_items[0].Description = "Description 1";
invoice.Invoice_items[0].Price = 1;
invoice.Invoice_items[0].qty 1;

Invoice_item item = new Invoice_item()
{
  Description = "Description 2",
  Price = 2,
  qty = 2
};

invoice.Invoice_items.Add(item);   // PROBLEM
                       
_context.Update(invoice);
await _context.SaveChangesAsync();
编辑“发票”记录时,可以编辑记录的所有元素以及附加到其上的“发票项目”列表的元素。当我想将一个项目添加到“发票”记录所附的“发票项目”列表时,就会出现问题


请提供帮助。

您只需在您的
项目中添加
发票\u itemID
,如下图所示更改代码

Invoice_item item = new Invoice_item()
        {
            //add this line.
            Invoice_itemID = new Guid(),
            Description = "Description 2",
            Price = 2,
            qty = 2
        };

你的错误是什么?您可以提供有关异常的详细信息吗?DbUpdateConcurrencyException:数据库操作预期会影响1行,但实际影响0行。此问题与
ChangeTracker
有关,您可以在链接上阅读您的
Invoice\u项目
实体是否设置了主键?是。Guid发票\u itemID是密钥