1
我有一个页面,如Order - Order lines。 Order由一些文本框和ddls表示,Order行由GridView表示。EF4 - 将对象添加到objectcontext而不保存更改
我想让用户添加订单行而不保存对数据库的更改。例如:他添加4个订单行,填写订单信息,然后点击保存按钮。只有那一刻所有的信息都应该保存到数据库中。
当我使用如下代码
using (Entities ctx = new Entities())
{
//create new OrderLine
OrderLine ol = OrderLine.CreateOrderLine(1, 1, "", 1);
//add OrderLine to OrderLines collection
ctx.CreateOrderLines.AddObject(ol);
}
新创建的订单行不会出现在我的对象上下文,所以我不能访问它和GridView控件绑定到新的OrderList集合。
我该如何解决这个问题?或者,也许还有其他方法来执行此任务?
谢谢。
分离没有问题。问题出在GridView中。当我需要添加,删除和更新行时,如何处理它,但没有即时保存。当点击保存按钮时,所有数据最后应保存到数据库中。 – Smile 2010-10-29 14:50:25
我通过创建更小版本的对象(仅使用我需要的属性)并将它们存储在会话中来完成类似于此的操作。您不希望将整个GridView数据存储在会话中,但可能是一个轻量级对象。然后,当用户提交时,可以将值复制到ObjectContext并应用更改。 – dotariel 2010-10-29 15:54:37
我不明白我应该如何在这种情况下与GridView一起工作。用户应该看到新添加的行也添加到了网格中。想象一下:用户从我的表单添加4行=>有4个回发=>向GridView添加了4个新行。但那时没有数据保存到数据库。比用户删除1行从这个4 => 1 postbask => 1行已经从GridView中删除(还有3行)。仍然没有数据保存。现在用户决定在GridView中更新1行=> 1 postback => 1行。最后用户点击保存按钮,所有更改/创建的数据保存到数据库。 – Smile 2010-10-29 16:13:51