C#Entityframework在移除时查找另一个表之间的项关系



我希望在删除之前从EntityFrameWork中的表中删除项时显示该项具有关系的通知,如果用户接受删除-删除关系,则删除项

例如:

学生表与地址表(一对多(和电话表(一比多(相关当用户想要在移除之前移除学生时,显示通知项目具有2个相关项目";地址"电话";你确定要删除";地址";以及";电话"?如果用户接受了设置为空";studentId";地址表和电话表

var deletedItem=strudent;
if(deletedItem.HasRelationships())
foreach(var relation on deletedItem.GetRelationships())
{
relation.findPropertybyName("studentId")=null;
}
db.Students.Remove(deletedItem);

我想为所有表自动动态地执行此操作。这样的事情可能吗?

您需要在电话和地址上使用.Any(x=> x.StudentId == studentId)进行检查。

bool HasRelationships(int studentId)
{
return phones.Any(x=> x.StudentId == studentId) && 
addresses.Any(x=> x.StudentId == studentId);
}

但我建议你避免额外的检查,只是警告可能有相关的数据。如果您得到"确定",请继续删除。

最新更新