gpt4 book ai didi

c# - 从集合中删除对象时,如何让 EF6 从数据库中删除对象?

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:42 25 4
gpt4 key购买 nike

我在修改子集合然后运行保存时首先使用 EF6 代码,保存运行但 Db 行没有被删除,只是将外键设置为 null。

基本模型

public class Building 
{
int Id {get;set;}
ICollection<BuildingFloors> BuildingFloors
}

public class BuildingFloors
{
int id
}

我在 DBContext 中设置级联,例如

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Model.Building>()
.HasMany(t => t.BuildingFloors)
.WithOptional(d => d.Building)
.WillCascadeOnDelete(true);

base.OnModelCreating(modelBuilder);
}

然后在保存收藏时我会清除当前列表。

building.BuildingFloors.Clear();

然后重新添加新值。

foreach(var floor in FloorCollection)
{
building.BuildingFloors.Add(buildingFloor);
}

当对象从集合中删除时,如何让 EF 从数据库中删除对象?

最佳答案

总计。是正确的,除了我还需要设置外键关系

所以 buildingfloors 类需要是

public class BuildingFloors
{
int id

//forgin key
int Building_Id
}

并且映射需要是

modelBuilder.Entity<Model.Building>()
.HasMany(t => t.BuildingFloors)
.WithRequired()
.HasForeignKey(t => t.Building_Id)
.WillCascadeOnDelete(true);

关于c# - 从集合中删除对象时,如何让 EF6 从数据库中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37991177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com