Entity Framework CRUD-операции над сеткой данных - PullRequest
1 голос
/ 06 июля 2010

У меня есть List<T>, связанный с сеткой данных, и я пытаюсь выяснить, как сохранить все изменения в базе данных (используя Entity Framework), а не только по одной строке за раз;ИЛИ, по крайней мере, лучший способ передать изменения из сетки данных в базу данных.Я использую шаблон MVVM.Вот что я сохранил, сохранив одну строку:

    private static PROJECT_EXPENSEEntities _service;

    //The default constructor
    public ProjectExpenseItemsRepository()
    {
        if (_service == null)
        {
            _service = new PROJECT_EXPENSEEntities();
        }
    }

  public void AddProjectExpenseItems(int projectExpenseID)
        {
            project_expense_items p = new project_expense_items();
            if (entityList != null)
            {
                p.project_expense_id = projectExpenseID;
                p.item_number = entityList.ItemNumber;
                p.item_description = entityList.ItemDescription;
                p.item_unit_price = entityList.ItemUnitPrice;
                p.item_qty = entityList.ItemQty;
                p.supplier_name = entityList.SupplierName;
                p.create_date = System.DateTime.Today;
                _service.AddObject("project_expense_items", p);
                _service.SaveChanges();
            }
        }

Однако я бы предпочел отправить изменения сразу во все строки в сетке данных:

    public void AddProjectExpenseItems(List<ProjectExpenseItemsBO> entityList, int projectExpenseID)
    {
        project_expense_items p = new project_expense_items();
        if (entityList != null)
        {
// not sure what goes here, do I need a loop for each item in the list?
// I have a feeling I am going in the wrong direction with this...

            _service.AddObject("project_expense_items", entityList);
            _service.SaveChanges();
        }
    }

У меня естьНе нашел много хороших примеров в Интернете.Если бы кто-то мог указать мне пример, я был бы признателен за это.

1 Ответ

0 голосов
/ 03 декабря 2011

Да.Вы можете просто перебрать свой список и SaveChanges один раз после добавления / изменения / удаления элементов.

Конечно, вы, вероятно, захотите загрузить и отобразить элементы из базы данных, так что привязка непосредственно к EntityCollection<project_expense_items> _service.project_expense_items будетболее эффективно, чем использование списка отдельных объектов.Entity Framework будет отслеживать изменения для вас.

Смотрите это: http://msdn.microsoft.com/en-us/library/bb896269.aspx

...