zoukankan      html  css  js  c++  java
  • MVC3"不允许启动新事务,因为有其他线程正在该会话中运行"错误解决方法

    出错代码段:

     public void UPdateStockForAudit(string ordercode)
            {
                var ditems=_db.Orderdetails.Where(o=>o.OrderCode==ordercode);
                foreach (var item in ditems)
                {
                    decimal inventory= item.PCS * item.Stock.TonPerPCS;
                    UpdateStock(item.StockId, item.PCS,inventory);
                }
            }
            private void UpdateStock(int stockid,int selledpcs,decimal inventory)
            {
                var item=_db.Stocks.SingleOrDefault(s=>s.StockId==stockid);
                item.Selled=selledpcs;
                item.Inventory=inventory;  
    _db.SaveChanges(); }

    修正后的(关键点在于_db.SaveChanges()把它放在循环外面即可! ):

     public void UPdateStockForAudit(string ordercode)
            {
                var ditems=_db.Orderdetails.Where(o=>o.OrderCode==ordercode);
                foreach (var item in ditems)
                {
                    decimal inventory= item.PCS * item.Stock.TonPerPCS;
                    UpdateStock(item.StockId, item.PCS,inventory);
                }
                _db.SaveChanges();
            }
            private void UpdateStock(int stockid,int selledpcs,decimal inventory)
            {
                var item=_db.Stocks.SingleOrDefault(s=>s.StockId==stockid);
                item.Selled=selledpcs;
                item.Inventory=inventory;            
            }

    不要怀疑事情是否会正常更新,系统很智能测试结果显示很正常!没有出错也没有数据错乱的问题!

    学习交流群:364976091
  • 相关阅读:
    vue Bus总线
    一百个灯泡排成一排,第一轮将所有灯泡打开;
    大数相乘 java
    最长公共子子串 java
    剑指XX游戏(六)
    C++面试出现频率最高的30道题目
    C++ 容器及选用总结
    C++中的各种容器实现原理
    求1000阶乘中最后0的个数
    n个骰子可能的点数和
  • 原文地址:https://www.cnblogs.com/firstcsharp/p/3081806.html
Copyright © 2011-2022 走看看