private void LoadEventsFromDb() { try { var plainList = new List <UserEvent>(); using (var ctx = DatabaseContext.Instance.Make()) { foreach (var evt in ctx.USER_EVENT) { plainList.Add(LinqToEntity.DecorateUserEvent(evt)); } // удалить старые сообщения ctx.ClearOldUserEvents(new DateTime(1900, 1, 1)); } // заполнить список var dic = plainList.GroupBy(x => x.User).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList()); userEvent.Clear(); foreach (var evt in dic) { userEvent.UpdateValues(evt.Key, evt.Value); } Logger.InfoFormat("Прочитано {0} записей USER_EVENT", plainList.Count); } catch (Exception ex) { Logger.Error("Ошибка в UserEventStorage.LoadEventsFromDb()", ex); } }