System.Data.Linq.ChangeConflictException: 2 的 1 更新失败

zhanshenjsb 2017-04-11 11:12:10
用linq to sql 更新订单主表和订单明细,
提交 SubmitChanges 时报错 System.Data.Linq.ChangeConflictException: 2 的 1 更新失败
线上环境。不是必然报错的,99%的订单不会报错,只有不到1%的订单偶然报错异常。
代码如下
public string OutUpdateOrder(JobOrder order)
{
string msg = string.Empty;
try
{
using (DatabaseDataContext context = new DatabaseDataContext())
{
var db = context.Orders.SingleOrDefault(p => p.OrderID == order.OrderID);
if (db != null)
{
db.GeneratedTicketStatus = order.GeneratedTicketStatus;
db.GeneratedTicketTime = DateTime.Now;
db.RefundStatus = order.RefundStatus;
db.RefundTotalPrice = order.RefundTotalPrice;
db.Remark = order.Remark;
var orderItems = context.OrderItems.Where(p => p.OrderID == order.OrderID);
foreach (var dbItem in orderItems)
{
var item = order.OrderItemList.SingleOrDefault(p => p.ItemID == dbItem.ItemID);
if (item != null)
{
dbItem.SeatNO = item.Seatno;
dbItem.TicketID = item.TicketID;
dbItem.TicketNumber = item.TicketNumber;
dbItem.TicketPicture = item.TicketPicture;
dbItem.RefundStatus = item.RefundStatus;
dbItem.RefundPrice = item.RefundPrice;

}
}
context.SubmitChanges();
}
}
}
catch (Exception exp)
{
msg = "OutTicketUpdateOrder异常:" + exp.ToString();

}
return msg;
}
...全文
902 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2017-04-11
  • 打赏
  • 举报
回复
Poopaye 2017-04-11
  • 打赏
  • 举报
回复
这帖子就是贴了个错误,连个问号都没有 先搞清楚究竟想问啥吧
Poopaye 2017-04-11
  • 打赏
  • 举报
回复
引用 2 楼 zhanshenjsb 的回复:
[quote=引用 1 楼 shingoscar 的回复:] https://msdn.microsoft.com/en-us/library/system.data.linq.changeconflictexception.aspx 看下异常的解释和示例
看了解释没有用[/quote] 好歹谈点感想,好让人估计楼主的理解能力
zhanshenjsb 2017-04-11
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
https://msdn.microsoft.com/en-us/library/system.data.linq.changeconflictexception.aspx
看下异常的解释和示例


看了解释没有用

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧