首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Linq-2-Sql编辑主详细记录

使用Linq-2-Sql编辑主详细记录
EN

Stack Overflow用户
提问于 2011-07-25 20:34:33
回答 1查看 1.9K关注 0票数 0

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

这是用于编辑批次信息的主-明细表。主部件(批次表格)包括BatchNo、SKUTitle、StageID和Date字段。细节部分(BatchDetail)包含字段PackingInstruction、ExpectedYield、Units和TargetDate。我已经设法将此信息保存在create scenario的单个页面上,如下所示

代码语言:javascript
复制
public ActionResult CreateBatch(Batch batch, BatchDetail detail)
{
    batch.BatchDetails.AddRange(detail.ToList());
    ctx.Batches.InsertOnSubmit(batch);
    ctx.SubmitChanges();
}

但是编辑场景是相当棘手的。在这个表单中,如上图所示,用户可以在细节部分添加新记录,删除和编辑现有记录,当数据发布到控制器时,我们无法知道哪些记录是新添加的,哪些是修改的,哪些是删除的。因此,作为结果,我必须这样做

代码语言:javascript
复制
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方法,但似乎什么也想不出来。

EN

回答 1

Stack Overflow用户

发布于 2011-08-08 22:17:21

在MVC Music Store Demo中,有一小部分介绍了如何使用JQuery AJAX调用删除控制器操作来从购物车中删除商品。这个例子是用part 8 of this tutorial编写的。

实际的AJAX调用解释大约在页面下方的3/4处。该部分的标题是“使用jQuery进行Ajax更新”,如果您想要快速搜索并找到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6816190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档