更新父 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();
净核心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();