我的控制器正在通过一个列表,然后我需要循环并更新数据库中列表中的每个记录.我正在使用ASP.NET MVC和使用
Linq to sql的存储库模式.下面的代码是我的save方法,它需要将记录添加到发票表中,然后从db更新作业表中的适用作业.
public void SaveInvoice(Invoice invoice,IList<InvoiceJob> invoiceJobs) { invoiceTable.InsertOnSubmit(invoice); invoiceTable.Context.SubmitChanges(); foreach (InvoiceJob j in invoiceJobs) { var jobUpdate = invoiceJobTable.Where(x => x.JobID == j.JobID).Single(); jobUpdate.InvoiceRef = invoice.InvoiceID.ToString(); invoiceJobTable.GetoriginalEntityState(jobUpdate); invoiceJobTable.Context.Refresh(RefreshMode.KeepCurrentValues,jobUpdate); invoiceJobTable.Context.SubmitChanges(); } }
此代码不起作用,并且没有更新作业记录,但发票表更新正常.不会抛出任何错误,invoiceJobs IList绝对不是null.如果我通过删除foreach循环并手动指定要更新哪个JobId来更改代码,它可以正常工作.以下作品:
public void SaveInvoice(Invoice invoice,IList<InvoiceJob> invoiceJobs) { invoiceTable.InsertOnSubmit(invoice); invoiceTable.Context.SubmitChanges(); var jobUpdate = invoiceJobTable.Where(x => x.JobID == 10000).Single(); jobUpdate.InvoiceRef = invoice.InvoiceID.ToString(); invoiceJobTable.GetoriginalEntityState(jobUpdate); invoiceJobTable.Context.Refresh(RefreshMode.KeepCurrentValues,jobUpdate); invoiceJobTable.Context.SubmitChanges(); }
我根本无法让foreach循环工作.有谁知道我在这里做错了什么?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。