我使用Linq-2-Sql作为asp.net mvc-3应用程序中的对象模型。首先看一下表单:

这是用于编辑批次信息的主-明细表。主部件(批次表格)包括BatchNo、SKUTitle、StageID和Date字段。细节部分(BatchDetail)包含字段PackingInstruction、ExpectedYield、Units和TargetDate。我已经设法将此信息保存在create scenario的单个页面上,如下所示
public ActionResult CreateBatch(Batch batch, BatchDetail detail)
{
batch.BatchDetails.AddRange(detail.ToList());
ctx.Batches.InsertOnSubmit(batch);
ctx.SubmitChanges();
}但是编辑场景是相当棘手的。在这个表单中,如上图所示,用户可以在细节部分添加新记录,删除和编辑现有记录,当数据发布到控制器时,我们无法知道哪些记录是新添加的,哪些是修改的,哪些是删除的。因此,作为结果,我必须这样做
public ActionResult EditBatch(int id, BatchDetail detail)
{
var batch = ctx.Batches.SingleOrDefault(x=>x.BatchID == id);
ctx.BatchDetails.DeleteAllOnSubmit(ctx.BatchDetails.ToList());
UpdateModel(batch);
batch.BatchDetails.AddRange(detail);
ctx.SubmitChanges();
}我讨厌在这个场景中删除详细记录的那部分。在Linq-2-Sql中,有没有一种方法可以避免在类似的情况下删除所有记录?如果不是,我可以在EF中完成此操作而不进行不必要的删除吗?
编辑
我一直在研究System.Data.Linq.Table的Attach方法,但似乎什么也想不出来。
发布于 2011-08-08 22:17:21
在MVC Music Store Demo中,有一小部分介绍了如何使用JQuery AJAX调用删除控制器操作来从购物车中删除商品。这个例子是用part 8 of this tutorial编写的。
实际的AJAX调用解释大约在页面下方的3/4处。该部分的标题是“使用jQuery进行Ajax更新”,如果您想要快速搜索并找到它。
https://stackoverflow.com/questions/6816190
复制相似问题