public void Update_Task(Task task) { WriteLog(task.ID, task.TaskName, DateTime.Now, "UPDATE"); ChangeTracker.DetectChanges(); foreach (var pv in task.PropValues) { var delPV = PropValues.FirstOrDefault(p => p.PropID == pv.PropID && p.TaskID == pv.TaskID); delPV = delPV == null ? pv : delPV; if (delPV.Property != null) { var curIDs = delPV.Property.PropertiesLists.Select(p => p.ID).ToList(); PropertiesLists.RemoveRange(PropertiesLists.Where(pl => pl.PropID == delPV.PropID && !curIDs.Contains(pl.ID))); // удалить те, которых сейчас нет } PropValues.AddOrUpdate(delPV); } Tasks.AddOrUpdate(task); SaveChanges(); }
public List <string> GetListOfPropValues(int propID) { return(PropertiesLists.Where(pl => pl.PropID == propID).Select(pl => pl.Value).ToList()); }