【发布时间】:2012-02-24 15:02:11
【问题描述】:
我有两个表:Transactions 和 TransactionAgents。 TransactionAgents 有一个 Transactions 的外键,称为 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) 中看到的数学运算,以修补每个代理的值,使其不为空。
奇怪的是,当我在 agent.AgentCommission = (formula) 上运行此代码和断点时,它显示正在为 AgentCommissions 计算值并且正在更新对象,但在它显示在我的数据网格中(仅用于测试)之后,它没有显示它计算的值。
所以,对我来说,该属性似乎没有被永久设置在对象上。更重要的是,如果我将这个新更新的对象通过更新持久化回数据库,我怀疑计算出的 AgentCommission 会在那里设置。
如果没有以相同的方式设置我的表,是否有人可以查看代码并了解我为什么不保留属性的价值?
【问题讨论】: