public List <Player> Load()
 {
     using (TableTennisContext db = new TableTennisContext())
     {
         return(db.Players.ToList());
     }
 }
 public void Remove(Player p)
 {
     using (TableTennisContext db = new TableTennisContext())
     {
         db.Players.Attach(p);
         db.Players.Remove(p);
         db.SaveChanges();
     }
 }
 public Player Add(Player p)
 {
     using (TableTennisContext db = new TableTennisContext())
     {
         db.Players.Add(p);
         db.SaveChanges();
         return(p);
     }
 }
 public Player Edit(Player p)
 {
     using (TableTennisContext db = new TableTennisContext())
     {
         AddPlayer newPlayer = new AddPlayer(p);
         p = db.Players.Find(newPlayer.Player.Id);
         if (p != null)
         {
             p.FirstName       = newPlayer.Player.FirstName;
             p.LastName        = newPlayer.Player.LastName;
             p.Rating          = newPlayer.Player.Rating;
             db.Entry(p).State = EntityState.Modified;
             db.SaveChanges();
         }
         return(p);
     }
 }
        public static void SaveRating(DataGrid resultDataGrid)
        {
            try
            {
                using (TableTennisContext db = new TableTennisContext())
                {
                    // получение количества игроков в расчете рейтинга
                    int currentRowsCount = resultDataGrid.Items.Count;

                    // цикл по списку игроков
                    for (int i = 0; i < currentRowsCount; i++)
                    {
                        DataGridRow currentPlayerRow = AccessToCellMethods.GetRow(resultDataGrid, i);
                        // получение итогового увеличения рейтинга
                        DataGridCell currentPlayerTotalDelta = AccessToCellMethods.GetCell(resultDataGrid, currentPlayerRow, currentRowsCount + 5);
                        double       totalDelta = 0;
                        //приведение к типу double
                        totalDelta = double.Parse(currentPlayerTotalDelta.Content.ToString());
                        object data = currentPlayerRow.Item;

                        // извлекаем его свойства
                        PropertyDescriptorCollection properties =
                            TypeDescriptor.GetProperties(data);

                        // находим свойство "Рейтинг"
                        PropertyDescriptor property = properties["Rating"];
                        object             rating   = property.GetValue(data);

                        //добавляем изменение рейтинга в базу
                        Player player = data as Player;
                        player.Rating         += totalDelta;
                        db.Entry(player).State = EntityState.Modified;
                    }
                    //сохраняем изменения в базе
                    db.SaveChanges();
                    MessageBox.Show("Новый рейтинг сохранен в базе!");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Данные для сохранения не расчитаны! Заполните результаты игр");
            }
        }