我有两个表:Transactions和TransactionAgents。TransactionAgents有一个名为TransactionID的事务外键。很标准。
我也有这段代码:
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;
基本上,一个TransactionAgent具有一个名为AgentCommission的属性/列,对于我数据库中的所有TransactionAgent,该属性/列都为null。
我的目标是执行您在中看到的数学运算foreach(var agent in taAgents)以修补每个代理的值,以使其不为null。
奇怪的是,当我运行此代码并在agent.AgentCommission = (formula)其上出现断点时,表明正在为AgentCommissision计算值,并且正在更新对象,但是在我的数据网格中显示了该值(仅用于测试)之后,它没有显示其计算出的值。
因此,对我而言,似乎该属性并未永久设置在该对象上。此外,如果我通过更新将这个新更新的对象持久化到数据库中,我怀疑计算出的AgentCommission是否会在那里设置。
在没有以相同方式设置表的情况下,是否有人可以查看代码并了解为什么我不保留该属性的值?
守候你守候我
相关分类