c# - 删除操作不适用于实体框架中没有依赖关系的实体
问题描述
这是我的删除操作代码,当我尝试删除不包含任何依赖项的实体时。它总是返回索引而不删除。我只想为具有依赖关系的实体设置它,其他实体应该允许删除并添加到日志中。
// GET: Company/5/Delete
[Route("{companyPk:int}/Delete")]
public async Task<ActionResult> Delete(int? companyPk)
{
//Validate parameters
if (companyPk == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Company identifier is missing.");
}
//Get the model from db
Company company = await _work.Companies.GetAsync(companyPk);
if (company == null)
{
return HttpNotFound();
}
//Convert model to dto
CompanyDto companyDto = _mapper.Map<CompanyDto>(company);
return View(companyDto);
}
// POST: Company/5/Delete
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
[Route("{companyPk:int}/Delete")]
public async Task<ActionResult> DeleteConfirmed(int companyPk)
{
//Get the model from db
Company company = await _work.Companies.GetAsync(companyPk);
var Related = _work.Companies.Where(i => i.CompanyPk == companyPk)
.Include(i => i.Departments)
.Include(i => i.Locations);
//.FirstOrDefault();
if (Related != null)
{
ViewBag.Message = String.Format("Company Pk has dependencies for Department and Location. Can't Delete");
return RedirectToAction("Index");
}
//Prepare log model
var logCompany = _mapper.Map<LogCompany>(company);
logCompany.RecordId = 0;
Utilities.Instance.SetLogEntityProperties(logCompany, "D");
//Save model to db
_work.LogCompanies.Add(logCompany);
_work.Companies.Remove(company);
await _work.CompleteAsync();
return RedirectToAction("Index");
}
解决方案
您是否尝试在删除后添加这一行?
_work.SaveChanges();
据我所知,没有它,您只需在本地删除,savechanges 也会编辑到数据库中。
推荐阅读
- java - 我正在尝试部署 helloworld Web 服务,但在运行 URL 后出现错误
- android - 我在 android、RoomDatabase 中有一些问题。初级水平
- c++ - 应用投影矩阵后对象消失
- php - 在 PHP 中从循环添加到数组但不添加更多键
- ruby-on-rails - 如何将成员添加到 trello 板?(使用 Rails 应用程序)
- git - 本地分支之间没有区别,但远程拉取请求显示超过 100 个文件已更改
- php - APi解析小数点后2位?
- amazon-web-services - AWS IAM S3 政策
- html - Fabricjs:如何只显示图像的一部分?
- mysql - MySQL查询连接同一表中的行