我正面临实体框架中的实体更新问题。在我的代码中,首先我创建一个员工对象,将所有属性设置为包含标量和导航属性,在同一方法中,我更新候选实体及其导航属性用户,但是当我要保存所有实体,没有标量属性更新,导航属性保持不变时,为什么会发生这种情况,请解释一下这种情况。
这是我的代码
public void AddEmployee(int candidateId)
{
var candidate= candidateRepository.read(candidateId);
var employee= new Employee();
/*--- add property ---*/
candidate.Employee= employee;
candidate.User.IsPlaced = true;
employeeRepository.add(employee);
candidateRepository.update(candidate);
}
这是我的存储库更新方法
public void update(T entity)
{
scope.Container.Set<TEntity>().Attach(entity);
scope.Container.Entry(entity).State = EntityState.Modified;
scope.Container.Savechanges();
}
public void read(int Id)
{
scope.Container.Set<TEntity>().FirstOrDefault(x => x.Id == Id);
}
在这个只有员工添加数据库的情况下,候选存储库更新方法不起作用,请解释一下这种行为。