我正在使用EFCore 2.0从SQL数据库中获取对象。该对象包含其他对象的集合。
我正在拿这样的对象:
var myRequestHistory =_dbContext.EmployeeRequestHistories.Include(x => x.Requests).FirstAsync(x => x.EmployeeId == employeeId);
我稍后在请求集合中添加了一个项目:
myRequestHistory.Requests.Add(new Request());
我需要获取从dbContext更改的项目列表,但myRequestHistory未显示更改,即使我向其集合添加了一个对象。
var changedEntities = _dbContext.ChangeTracker.Entries<EmployeeRequestHistory>()
.Where(x => x.State == EntityState.Added || x.State == EntityState.Deleted || x.State == EntityState.Modified).Select(x => x.Entity).ToList();
为什么我的更新对象不会出现在更改跟踪器中?如何解决此问题?
答案 0 :(得分:0)
您没有添加,更新或删除任何EmployeeRequestHistories
。
你做了什么 - 你在Requests表中添加了一条新记录。之后,没有修改EmployeeRequestHistories表的记录。
var changedEntities = _dbContext.ChangeTracker.Entries
您正在按EmployeeRequestHistory过滤 - 原因。只需按要求过滤