当 breeze child 实体更新时 parent 实体状态没有改变
when breeze child entity update parent entity state is not change
淘汰赛
当我Add/Updatechild实体时,parent实体状态没有改变。
我的以下场景是使用 breeze
的客户端更改跟踪
public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public Department Department { get; set; }
}
public class Department
{
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
}
当我更新 'Student' 的 'Department' 时,学生实体状态保持 'Unchanged'。
如何从 'Student' 实体状态获取部门变更。
当您更改导航 属性 Department
时,您不会更改实体 Student
因为在其中进行更改的是 的 foregeing key部门,所以如果你想得到状态,你需要知道改变的不是实体状态而是关系状态,所以你可以得到[=14=的状态] 像这样:
要获取条目,请使用:
var objCtx = ((IObjectContextAdapter)ctx).ObjectContext;
//In your case use the EntityState.Modified
var objentr = objCtx.ObjectStateManager.GetObjectStateEntries(EntityState.Modified);
要更改:
((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.
ChangeRelationshipState(student, oldDepartment,
c => c.Department, EntityState.Modified);
问题解释后更新:
鉴于我所说的导航 属性 Department
也适用于 Breeze,因此请参阅文档中的这一部分 Navigations properties - EntityState and PropertyChanged events after setting.
为什么不直接将 DepartmentID 属性 添加到学生?当 Department 更新时,DepartmentID 也会更改,EntityState 也会更新。
淘汰赛
当我Add/Updatechild实体时,parent实体状态没有改变。
我的以下场景是使用 breeze
的客户端更改跟踪public class Student
{
public int StudentId { get; set; }
public string Name { get; set; }
public Department Department { get; set; }
}
public class Department
{
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
}
当我更新 'Student' 的 'Department' 时,学生实体状态保持 'Unchanged'。
如何从 'Student' 实体状态获取部门变更。
当您更改导航 属性 Department
时,您不会更改实体 Student
因为在其中进行更改的是 的 foregeing key部门,所以如果你想得到状态,你需要知道改变的不是实体状态而是关系状态,所以你可以得到[=14=的状态] 像这样:
要获取条目,请使用:
var objCtx = ((IObjectContextAdapter)ctx).ObjectContext;
//In your case use the EntityState.Modified
var objentr = objCtx.ObjectStateManager.GetObjectStateEntries(EntityState.Modified);
要更改:
((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.
ChangeRelationshipState(student, oldDepartment,
c => c.Department, EntityState.Modified);
问题解释后更新:
鉴于我所说的导航 属性 Department
也适用于 Breeze,因此请参阅文档中的这一部分 Navigations properties - EntityState and PropertyChanged events after setting.
为什么不直接将 DepartmentID 属性 添加到学生?当 Department 更新时,DepartmentID 也会更改,EntityState 也会更新。