У меня есть сетка, а 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();
}