Множественные добавления удаляют строки обновлений в одной go Entity Framework C# - PullRequest
0 голосов
/ 23 января 2020

У меня есть сетка, а datatable - это datasource в C# приложении Winforms. База данных - SQL Сервер, а ORM - Entity Framework, использующий подход, основанный на базе данных.

Приложение запускается и строки базы данных загружаются в gridview. Затем пользователь добавляет несколько новых строк, удаляет некоторые строки и обновляет некоторые строки. Затем нажимает кнопку сохранения, чтобы сохранить все это.

Поскольку я не знаю, как сохранить этот конкретный c сценарий, где некоторые строки обновляют, некоторые удаляют, а некоторые добавляют. Поэтому сначала я удаляю все строки, ранее находившиеся в базе данных, а затем вставляю все строки gridview. База данных находится в глобальной сети. Сохранение занимает много времени.

Что может быть лучшим подходом для сохранения строк вида сетки в базе данных с использованием Entity Framework, когда есть некоторые строки, которые добавлены, некоторые обновлены, а некоторые удалены.

пример: 4 строки AB C и D загружены из БД в сетку. Я обновляю строку A и B в виде сетки. Удалите строку C и D из вида сетки и добавьте новую строку E в виде сетки. и затем я нажимаю кнопку сохранения. Поэтому A и B должны быть обновлены в дБ, а C и D должны быть удалены из дБ. и новая строка E должна быть вставлена ​​в дБ. что все, что я хочу в одном go, используя работу Entity Frame. Пожалуйста, помогите!

public void SaveList(decimal ProjectCode,byte bomTypeCode)
        {

             List<BOM> LstBoms = GetModels().AsQueryable().Where(x=>x.ProjectCode==ProjectCode && x.BOMTypeCode==bomTypeCode).ToList<BOM>(); //.Products.where(x => x.StoreId == store.StoreId)
            if (LstBoms.Count > 0)
            {
                foreach (BOM bomModel in LstBoms)
                {
                    interfaceObj.DeleteModel(bomModel.RowAuto);
                }

            }
            foreach (BOM bomModel in _gLstBomModel)
            {
                interfaceObj.InsertModel(bomModel);
            }
             interfaceObj.Save();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...