Как переместить строку из одной таблицы в другую без подключения к FK - PullRequest
0 голосов
/ 19 июня 2019

Я занимаюсь Entity Framework и у меня есть база данных, в которой нет связи между двумя таблицами. Моя форма имеет два вида данных, каждый из которых показывает содержимое этих таблиц при загрузке. У меня также есть две кнопки. Когда я выбираю любую ячейку (которая выделяет всю строку) на спортивном столе и нажимаю кнопку «Копировать», она перемещает данные в таблицу здоровья и удаляет их из спортивной таблицы. Вторая кнопка делает наоборот. Что вы думаете не так?

Я попытался удалить и добавить, и, похоже, произошла ошибка проверки. Как я могу это исправить?

public partial class Form1 : Form
{
    SportsAreUsEntities mySports = new SportsAreUsEntities();
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        RefreshGrids();
    }

    private void RefreshGrids()
    {
        var allSport = from eachSport in mySports.SportingItems                          
                       orderby eachSport.SportingItemID ascending
                       select new
                       {
                           eachSport.SportingItemID,
                           eachSport.Name,
                           eachSport.Description,
                           eachSport.QuantityOnHand
                       };

        dataGridSport.DataSource = allSport.ToList();

        var allHealth = from eachHealth in mySports.HealthItems
                        orderby eachHealth.HealthItemID ascending
                        select new
                        {
                            eachHealth.HealthItemID,
                            eachHealth.Name,
                            eachHealth.Description,
                            eachHealth.QuantityOnHand
                        };

        dataGridHealth.DataSource = allHealth.ToList();
    }

    private void moveToHealth_Click(object sender, EventArgs e)
    {
        //Retrieve selected row and id
        var selectedRow = dataGridSport.CurrentRow;
        int selectedID = (int)selectedRow.Cells["SportingItemID"].Value;
        var data2 = new HealthItem();


        var rowToDelete =        (from row in mySports.SportingItems
                                  where row.SportingItemID == selectedID
                                  select row).Single();

        var rowToAdd = (from row in mySports.SportingItems
                           where row.SportingItemID == selectedID
                           select row).Single();
        mySports.SportingItems.Remove(rowToDelete);  //Mark for deletion   
        mySports.HealthItems.Add(data2);
        mySports.SaveChanges();
        RefreshGrids();



    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...