sql-server - 如何使用 Asp.coreBoilerplate 实体框架实现级联删除?
问题描述
我想在 asp.net 核心样板的删除功能上实现 Cascade。但我不能这样做吗?这是我为此所做的。
公司是父类:
public class Company:FullAuditedEntity<long>
{
public string CompanyName { get; set; }
public string EmployeesCount { get; set; }
public virtual ICollection<Employees> Employees { get; set; }
}
Employee 是与 Company 类具有一对多关系的子类。
public class Employees:FullAuditedEntity<long>
{
public string EmployeeName { get; set; }
public string Salaray { get; set; }
[ForeignKey("Company")]
public long CompanyId { get; set; }
public virtual Company Company { get; set; }
}
这是我在 Dbcontext 类中为实现 Cascade on Delete 功能所做的工作。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Employees>()
.HasOne(e => e.Company)
.WithOne()
.OnDelete(DeleteBehavior.Cascade).HasForeignKey<Employees>(t=>t.CompanyId);
}
但是当我删除父实体(公司)的记录时,子表(员工)中的相关记录不会被删除。
解决方案
推荐阅读
- javascript - 如何在 React/Preact 应用程序中运行常规 JavaScript
- vba - Powerpoint Macro VBA - 选择“幻灯片图像”复选框
- php - 检查图像是否存在 - 数据库或文件查找?
- python - 如何根据用户在 Python 中的输入绘制 3D 正方形?
- python - 使用 and or not 开发表达式
- javascript - 如何将数据从input传到express,以便后面的express将数据传到数据库PostgreSQL
- javascript - 仅从每个对象 Javascript 中获取请求的项目
- excel - Excel 无法粘贴所有复制的单元格
- python - Python - 查找系列中连续 NaN 组的第一个和最后一个索引
- database - 如何在不在同一网络上的数据库和移动应用程序之间进行访问?