实体框架对数据网格的CRUD操作

时间:2010-07-06 14:20:37

标签: wpf entity-framework mvvm datagrid crud

我有一个绑定到数据网格的List<T>,并试图弄清楚如何将所有更改保存到数据库(使用实体框架),而不是一次只保存一行;或者,至少是一种更改从数据网格到数据库的更改方法。我正在使用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();
            }
        }

但是,我希望立即将更改发送到datagrid中的所有行:

    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 :(得分:0)

是。添加/修改/删除项目后,您只需循环遍历列表和SaveChanges。

当然,您可能希望从数据库加载和显示项目,因此直接绑定到EntityCollection<project_expense_items> _service.project_expense_items比使用分离实体列表更有效。实体框架将跟踪您的变化。

请参阅:http://msdn.microsoft.com/en-us/library/bb896269.aspx

相关问题