我在更新SQLRepository中的记录时遇到了一些麻烦,而且我不确定如何正确执行此操作,或者我只是以完全错误的方式来处理这些记录。如何在ASP.NET MVC Repository中一次遍历并更新多个记录?
我有一个发票视图,询问用户的客户,开始日期和结束日期。一旦提交我的控制器,然后构建与条件匹配的所有作业的IList,并通过Ajax更新视图以显示列表。在相同的观点,我有另一个领域,要求用户确认这些工作可以开票。
我需要第二个按钮,然后用发票数据将记录添加到我的发票表中 - 这工作正常。我还需要做的是更新所有工作记录(在IList中)以包含发票ID号。我似乎无法得到这个工作。
第二个按钮的更新方法如下。我已经尝试了多次重新安排这个,没有任何工作。说实话,在这种情况下我完全缺乏任何经验(我不是天生的开发人员),所以我不确定我是否能够接近这个标准。
public void SaveInvoice(Invoice invoice, IList<InvoiceJob> invoiceJobs)
{
foreach (var j in invoiceJobs)
{
InvoiceJob o = j;
InvoiceJob jobUpdate = (from i in invoiceJobTable where i.JobID == j.JobID select i).Single();
jobUpdate.InvoiceRef = invoice.InvoiceID.ToString();
invoiceJobTable.Attach(jobUpdate);
invoiceJobTable.Context.Refresh(RefreshMode.KeepCurrentValues, jobUpdate);
}
invoiceTable.InsertOnSubmit(invoice);
invoiceTable.Context.SubmitChanges();
invoiceJobTable.Context.SubmitChanges();
}
发票表更新精用这种方法和代码运行,但InvoiceRef不更新在invoiceJobTable的作业。它似乎没有触及这一点。据我所知,invoiceJobs IList不为null,就好像我改变了控制器发送的数据一样,我在上面的foreach循环中得到了null异常错误。
我希望我已经解释得很好。任何帮助表示赞赏;我只是一个试图学习的小菜鸟。 xD
您对数据访问使用什么? LINQ2SQL? – Josh 2011-03-31 20:37:05
为什么要重新附加jobUpdate并刷新它? L2S应该保持jobUpdate.InvoiceRef的变化并在SubmitChanges上提交更改(假设你使用的是L2S)。 – Joe 2011-03-31 20:54:56
是的,Linq 2 Sql是什么使用。 – aMike 2011-03-31 20:56:15