如何在 asp.net core 的其他表中添加数据和删除相同的数据?

Posted

技术标签:

【中文标题】如何在 asp.net core 的其他表中添加数据和删除相同的数据?【英文标题】:How to add data and remove same data from other table in asp.net core? 【发布时间】:2020-07-26 20:48:20 【问题描述】:

我正在尝试从添加到 TestResult 表中的现有表 PendingTestResult 中删除同一行。但它不起作用请帮我解决这个问题

这是控制器

 [HttpPost]
    [Route("Reception/PatientTests/SaveTestResult")]
    public async Task<IActionResult> SaveTestResult(List<TestResult> testResults)
    
        if (ModelState.IsValid)
        
            foreach (TestResult tr in testResults)
            
                _db.Add(tr);
                await _db.SaveChangesAsync();
                var TestResultId = new PendingTestResult  Id = tr.Id ;
                _db.Remove<PendingTestResult>(TestResultId);
                await _db.SaveChangesAsync();
            

            // return new JsonResult("Index");
        

        return new JsonResult(testResults); ;
    

这里我想从 TestResult 表中新添加的 PendingTestResult 表中删除相同的行。

【问题讨论】:

【参考方案1】:

请确保您要删除的数据在表格中可用。 我建议不要创建新对象,而是使用 Find 方法 假设 _db 是 DbContext 的对象。

 _db.Add(tr);
 _db.PendingTestResults.Remove(_db.PendingTestResults.Find(tr.Id));
  await _db.SaveChangesAsync();

请更改 DbSet 属性名称。 如果要调试代码,请使用 sql server profiler。

【讨论】:

我通过更改此代码 _db.Add(tr); 解决了这个问题_db.pendingTestResults.Remove(_db.pendingTestResults.Where(p=>p.PatientId==tr.PatientId).FirstOrDefault());等待_db.SaveChangesAsync();

以上是关于如何在 asp.net core 的其他表中添加数据和删除相同的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET Core Web API 中添加两个不同的令牌

ASP.NET Core Identity 系列之六

如何将文件中的其他参数从 Angular 传递给 ASP.NET Core 控制器?

如何在 C# 页面 ASP.NET Core MVC 上使用 SignInManager 和 Usermanager

如何将 AzureAD 和 AzureADBearer 添加到 asp.net core 2.2 web api

选择 webApi 模板时如何将 ASP.Net 身份添加到 Asp.Net Core?