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());
 }