更新父 table 时更新子 table 的最佳方法是什么?

What is the best approach to update child table when updating parent table?

净核心Ef核心。我有两个 tables,架构如下所示。

 Student table - StudentId Name Class, IsActive 
 Address Table - AddressId, City, Country, IsActive, StudentId

想法是当我更新 Student IsActive Field 为 False 时,我也想更新对应的 Address table IsActive 也为 false。

我认为的方法是,在更新 Student table 之后,再创建一个根据学生 ID 更新地址 table 的方法。例如,

UpdateStudent(int studentid)
{
     //update student
     //If success call method update AddressUpdate(int studentid)
}
AddressUpdate(int studentid)
{
    //update address table
}

我正在使用如下通用存储库模式。

public void Update(T entity)
{
    this.dbSet.Attach(entity);
    this.dbContext.Entry(entity).State = EntityState.Modified;
}

谁能告诉我还有其他最好的方法来处理这个问题吗?任何帮助,将不胜感激。谢谢

我会做不同的事情。 当您从数据库中获取学生详细信息时,您还必须获取地址详细信息(使用 Include 只需一次调用)

您可以将两个字段都设置为false,然后只执行一个SaveChanges 来更新它。 var stu student.isActive = 假; student.address.isActive = 假;

ctx.SaveChanges();