在控制器(create)中添加第二条数据记录



我使用了"视图和相应的控制器来创建记录。这是控制器的一部分。

public async Task<IActionResult> Create([Bind("Id,Bankbeleg,Belegnummer,Datum,Bezeichnung,Zahlungsart,Brutto,...")] Buchungen buchungen)
{
if (ModelState.IsValid)
{
_context.Add(buchungen);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
...

到目前为止没有任何问题。

但现在我想在操作发生时自动添加第二条数据记录。

我尝试了这种方式,但不幸的是,没有创建第二个数据集。

public async Task<IActionResult> Create([Bind("Id,Bankbeleg,Belegnummer,Datum,Bezeichnung,Zahlungsart,Brutto,...")] Buchungen buchungen)
{
if (ModelState.IsValid)
{
_context.Add(buchungen);
await _context.SaveChangesAsync();

if (buchungen.Zahlungsart == "PayPal")
{
var item = _context.Buchungen
.OrderBy(p => p.Id)
.LastOrDefault();
buchungen.Bankbeleg = item.Bankbeleg;
buchungen.Belegnummer = item.Belegnummer + 1;
buchungen.Datum = item.Datum;
buchungen.Bezeichnung = "New Text";
buchungen.Brutto = item.Brutto / 10;
_context.Add(buchungen);
}
return RedirectToAction(nameof(Index));
}

有人知道这里出了什么问题吗?

找到解决方案;必须设置id=0,这样,当插入新行时,数据库将为它创建Identity值

if (buchungen.Zahlungsart == "PayPal")
{
var item = _context.Buchungen
.OrderBy(p => p.Id)
.LastOrDefault();
buchungen.Id = 0; //<<-- This is important !!!
...

最新更新