2017-08-29 64 views
0

我正在使用EFCore 2.0從SQL數據庫中獲取對象。該對象包含其他對象的集合。EFCore Collection ChangeTracking

我取這樣的對象:

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

您沒有添加,更新或刪除任何EmployeeRequestHistories。 你做了什麼 - 你在請求表中添加了一條新記錄。之後,沒有修改EmployeeRequestHistories表的記錄。

VAR changedEntities = _dbContext.ChangeTracker.Entries

你被EmployeeRequestHistory過濾 - 的原因。只需通過請求