首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

EF 多线程多表更新的有关问题

2013-01-11 
EF 多线程多表更新的问题有个需求需要定时接收数据,然后插入或更新到数据库。代码如下://业务方法void Inse

EF 多线程多表更新的问题
有个需求需要定时接收数据,然后插入或更新到数据库。
代码如下:
//业务方法
void InsertLog(string gameId, string sellerName, string buyerName, string orderId, string orderTime, string orderLog)

LogBll.CreatInStance().SaveLogInfo(logInfo, orderInfo, updateOrderType, isOperatorOrder, orderJobInfo); //调用保存数据方法

///保存数据
 public int AddObjects(LogInfo logInfo, OrderInfo orderInfo, UpdateOrderType updateOrderType, bool isOperatorOrder, OrderJobInfo orderJobInfo)
        {
           OrderInfo oldOrderInfo = Logistics.Data.Common.IOC.CommonService.OrderService.GetOrderInfo(orderInfo.OrderId);
            if (oldOrderInfo == null)
            {
                Context.OrderInfo.Add(orderInfo);
            }
            else if (oldOrderInfo.OrderState != orderInfo.OrderState)
            {
                Context.OrderInfo.Attach(orderInfo);
                Context.Entry(orderInfo).State = EntityState.Modified;
            }
            if (isOperatorOrder) Context.OrderJobInfo.Add(orderJobInfo);
            LogInfo log = Logistics.Data.Common.IOC.CommonService.LogService.GetLogInfo(logInfo.Id);
            if (log == null)
                Context.LogInfo.Add(logInfo);
            return Context.SaveChanges();
        }
[解决办法]
1、事务是否是在循环内声明的。如是的话应修改。
2、弄清楚约束 'PK_OrderInfo'这个约束是对应的什么字段。然后用公共变量来解决这个问题。

热点排行