无法使用linq更新数据库实体

问题描述 投票:0回答:1
var receiptDetailRecord = (from BcchildDetails in _context. BcchildDetails
                        //...
                        select new SubmitReceiptModel
                        {                        
                            ReceiptHeaderId = receiptHeaderRecord. ReceiptHeaderId,
                            FeeComponentId = BcchildDetails. FeeComponentId,
                            //...
                            AmountPaid = BcchildDetails.AmountDue,
                         }
                         );

var receiptAmount = request.ReceiptAmount;
foreach (var record in receiptDetailRecord)
{
    var totalpayable = record.AmountPaid + record.Cgstamount;
    if(receiptAmount >= totalpayable)
    {
        receiptAmount -= (decimal)totalpayable;
        record.AmountPaid = receiptAmount;
    }
    //...
}
    
List<ReceiptDetail> receiptDetailsList = new List<ReceiptDetail>();
    

我正在尝试根据一些计算来更新

AmountPaid
中存在的每条记录。我想把每条记录都插入到
receiptDetailRecord
中。在调试代码时,一旦控件退出 foreach 循环,
receiptDetailsList
中的记录就会包含分配给它们的初始值,这基本上意味着它们不会在循环中更新。
    

c# linq .net-core
1个回答
0
投票
receiptDetailRecord

是一个IEnumerable,LINQ查询以只读集合的形式返回结果。因此,您需要使用

receiptDetailRecord
 获取结果列表
ToList()

© www.soinside.com 2019 - 2024. All rights reserved.