我有一个绑定到数据网格的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();
}
}
我在网上找不到很多好的例子。如果有人能指出我的例子,我会很感激。
答案 0 :(得分:0)
是。添加/修改/删除项目后,您只需循环遍历列表和SaveChanges。
当然,您可能希望从数据库加载和显示项目,因此直接绑定到EntityCollection<project_expense_items> _service.project_expense_items
比使用分离实体列表更有效。实体框架将跟踪您的变化。