我有兩個(gè)表:Transactions和TransactionAgents。TransactionAgents有一個(gè)名為TransactionID的事務(wù)外鍵。很標(biāo)準(zhǔn)。我也有這段代碼:BrokerManagerDataContext db = new BrokerManagerDataContext();var transactions = from t in db.Transactions where t.SellingPrice != 0 select t;var taAgents = from ta in db.TransactionAgents select ta;foreach (var transaction in transactions){ foreach(var agent in taAgents) { agent.AgentCommission = ((transaction.CommissionPercent / 100) * (agent.CommissionPercent / 100) * transaction.SellingPrice) - agent.BrokerageSplit; } }dataGridView1.DataSource = taAgents;基本上,一個(gè)TransactionAgent具有一個(gè)名為AgentCommission的屬性/列,對(duì)于我數(shù)據(jù)庫(kù)中的所有TransactionAgent,該屬性/列都為null。我的目標(biāo)是執(zhí)行您在中看到的數(shù)學(xué)運(yùn)算foreach(var agent in taAgents)以修補(bǔ)每個(gè)代理的值,以使其不為null。奇怪的是,當(dāng)我運(yùn)行此代碼并在agent.AgentCommission = (formula)其上出現(xiàn)斷點(diǎn)時(shí),表明正在為AgentCommissision計(jì)算值,并且正在更新對(duì)象,但是在我的數(shù)據(jù)網(wǎng)格中顯示了該值(僅用于測(cè)試)之后,它沒(méi)有顯示其計(jì)算出的值。因此,對(duì)我而言,似乎該屬性并未永久設(shè)置在該對(duì)象上。此外,如果我通過(guò)更新將這個(gè)新更新的對(duì)象持久化到數(shù)據(jù)庫(kù)中,我懷疑計(jì)算出的AgentCommission是否會(huì)在那里設(shè)置。在沒(méi)有以相同方式設(shè)置表的情況下,是否有人可以查看代碼并了解為什么我不保留該屬性的值?
3 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
具體來(lái)說(shuō),問(wèn)題在于每次您訪問(wèn)IEnumerable時(shí),它都會(huì)枚舉集合。在這種情況下,集合是對(duì)數(shù)據(jù)庫(kù)的調(diào)用。在第一部分中,您將從數(shù)據(jù)庫(kù)中獲取值并進(jìn)行更新。在第二部分中,您將再次從數(shù)據(jù)庫(kù)中獲取值,并將其設(shè)置為數(shù)據(jù)源(或者,將您的枚舉器設(shè)置為數(shù)據(jù)源,然后從數(shù)據(jù)庫(kù)中獲取值)。
使用.ToList()或類似方法將結(jié)果保存在內(nèi)存中,并每次訪問(wèn)相同的集合。
- 3 回答
- 0 關(guān)注
- 446 瀏覽
添加回答
舉報(bào)
0/150
提交
取消