繁体   English   中英

当我添加行时,我在数据库中只得到 1 个对象

[英]When I'm adding rows, I only get 1 object in database

我的组件:

onSave() {
     console.log(this.receivedPropertyForm.value)
     this.micro.postButton(this.receivedPropertyForm.value.ItemRec[0]) .subscribe({ next:(res)=>{console.log(res) } })
}

这是我的服务,我将对象传递给后端到 SQL:

postButton(data) {
    return this.http.post(environment.baseURL + 'PropertyTransactionDetails/Add', data)
}

我在后端的控制器:

[HttpPost("Add")]
public async Task<ActionResult<PropertyTransactionDetailsDTO>> Add([FromBody] 
PropertyTransactionDetailsDTO item)
{
    if (item == null)
        item = new PropertyTransactionDetailsDTO();

    return Ok(await _PropertyTransactionDetailsRepository.Insert(item));
}

在这里,我尝试发布 2 个对象:

2 对象数组

我的数据库

我的问题是如何在数据库中显示另一行或更多行?

从外观上看,您似乎只发布了数组this.receivedPropertyForm.value.ItemRec[0]中的第一项。

根据您计划如何在后端设置业务逻辑,我会说您在这里有两个选择。

简短而快速的解决方法是遍历所有要发布的 obj,一次发布一个(这显然意味着来自前端的更多请求,这是不好的),但它会起作用。 这可以通过 RXJS 操作符来增强,以处理 observables 并更优雅地解析它们——也许我们可以通过使用| async来避免调用.subscribe()的需要。 | async管道? 但如果你不做后者,至少也要确保.unsubscribe()

onSave() {
console.log(this.receivedPropertyForm.value)

for (const item of this.receivedPropertyForm.value?.ItemRec) {
  this.micro.postButton(item).subscribe((response) => {
    console.log(response)
    });
  }
  
}

更正确的方法可能是发布整个项目数组,在后端迭代它们,最后返回项目列表。 对于该实施,您需要修改所有部分并考虑如何处理此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM