【发布时间】:2021-09-30 19:55:17
【问题描述】:
在我的数据库中,我有一个上传表和一个员工表。模型类中有一个Employee类文件和一个Upload Item类文件。我需要编辑员工信息。员工编号 1 有 2 个上传文件。在编辑操作中,用户删除了一个文件(编号:2 图像已删除)。模型被传递到后端。后端获取模型,需要对上传的文件进行验证。上传表有两条员工id 1 的记录。前端代码发送文件请求。在这种情况下,我需要检查表中的哪个文件不匹配。如果发现不匹配的记录,我需要删除它。例如,我需要从上传表中删除记录 id 编号 2。下面我解释一下我的代码。
上传表格:
| Id | File Name | URL | EmployeeId |
|---|---|---|---|
| 1 | home.jpg | C:\home.jpg | 1 |
| 2 | flower.jpg | C:\flower.jpg | 1 |
上传物品模型类:
public class UploadItem()
{
[Key]
public int Id{get;set;}
public string FileName {get;set;}
public string URL {get;set;}
public int EmployeeId {get;set;}
}
员工表:
| Id | Employee Name | PhoneNo |
|---|---|---|
| 1 | Joseph | 89772 |
| 2 | rosy | 3244 |
员工模型类:
public class Employee()
{
[Key]
public int Id{get;set;}
public string EmployeeName {get;set;}
public int PhoneNo{get;set;}
public List<IFormFile> files {get;set;}
public List<UploadItem> uploadfiles {get;set;}
}
控制器类: //方法总结:需要从上传表中删除不匹配的记录。
[HTTPPOST("EditEmployee")]
public async Task<IActionResult> EditEmployee([FormFrom] Employee model)
{
if(model.uploadfiles.Count>0)
{
var uploadRecordsFromDB= dbContext.Uploads.Where(x=>x.EmployeeId==model.Id).ToList();
var uploadRecordsFromRequest=model.uploadfiles;
//Finding unmatched records method1:
var unMatchedRecords = uploadRecordsFromDb.Where(x=> !uploadRecordsFromRequest.Contains(x)).ToList();
//Finding unmatched recordss method 2:
var unMatchedRecords1= uploadRecordsFromDB.Where(i => !uploadRecordsFromRequest.Contains(i)).ToList();
}
}
我期望的结果是
| Id | File Name | URL | EmployeeId |
|---|---|---|---|
| 1 | home.jpg | C:\home.jpg | 1 |
【问题讨论】:
-
指定您使用的确切 ORM 版本。
-
实体框架核心(后端 API Asp.net Core)
标签: c# linq entity-framework-core asp.net-core-webapi asp.net-core-3.1