簡體   English   中英

在表中保存記錄后,如何循環遍歷具有相同 ID 的所有記錄並在 ASP.NET MVC C# 中更新它們

[英]After saving a record in a table, how to loop through all records with same ID and update them in ASP.NET MVC C#

好的,所以我對如何實現這一目標感到困惑。 我有一個名為“ProductOrders”的數據庫實體框架表,它在下新訂單時保存一條新記錄。 我想做的是在保存新記錄后,我想獲取剛剛創建/保存的“可用數量”字段的值,然后遍歷表中的所有記錄,如果有任何記錄“ProductID”字段與剛剛創建的字段相同,然后我想將“可用數量”字段的值更改為最新條目中的新“可用數量”值。 例如,如果某人在訂單 # 100 上訂購了產品 # ABC,並且該產品的新可用數量值為 10。 創建該記錄后,我希望它檢查該表中的每條記錄,看看是否有其他訂單包含產品 # ABC。 如果有,則將每個可用數量值更改為 10。 我試過這個但沒有用:

productOrder = db.ProductOrders.Find(id);

foreach (var item in db.ProductOrders.Where(x => x.ProductID == productOrder.ProductID))
        {
            item.Qty_Available = productOrder.Qty_Available;
            db.Entry(item).State = EntityState.Modified;
            db.SaveChanges();
        }

我收到錯誤消息:“不允許新事務,因為會話中還有其他線程在運行”。 我似乎無法讓它發揮作用。 我不確定我是否需要做一個 foreach 語句,或者我是否在錯誤的軌道上,正確的軌道上......我將非常感謝任何幫助,因為我已經堅持了好幾天。

哇哦,我現在真的覺得自己很愚蠢。 我只是在每個語句的末尾添加了 .ToList() 並且它起作用了哈哈。

看起來您最好創建另一個名為productAvailableQuantity的表,該表具有productIDDescriptionQuantity 這樣,當您將新記錄保存到productOrder表時,您只需更新productAvailableQuantity表,而不必遍歷productOrder表中的所有記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM