DataColumn表达式中的引用值

本文关键字:引用 表达式 DataColumn | 更新日期: 2023-09-27 18:26:23

给定这样的表达式

 DataTable1.Columns.Add("value", typeof(double), "rate * loan_amt");

在一个有10000行的数据表中,所有行的速率相同,loan_amt的不同

当速率发生变化时,所有速率都会发生变化目前,这意味着像一样迭代所有行

 foreach(DataRow dr in DataTable1.Rows) dr["rate"] = new_rate;

想知道是否有更好的方法在同一个DataSet中使用ReferenceTable(只有1行)并以某种方式将其链接为

 DataTable1.Columns.Add("value", typeof(double), "RefTable.Row0.rate * loan_amt");

所以改变速率就像一样简单

 RefTable.Rows[0]["rate"] = new_rate;

或者其他方式?

DataColumn表达式中的引用值

这是个好主意,但您必须在任何时候重写遗留代码中访问的数据。它肯定会使速率更新更高效,但您可能会遇到反向兼容性问题。

如果他们没有太多代码访问该表,那也没什么大不了的,但如果这是一个有多个进程调用该数据的生产系统,那么在试图访问原始表的"速率"列时,你可能会遇到一连串失控的空值异常,或者你的"值"不一致,这取决于哪个代码访问了哪个表来检索速率。

如果不是这样,那也没什么大不了的。去吧。

找到了答案,并为其他可能在这里着陆的添加了答案

关键是在两个表/列之间添加一个DataRelation,表达式将是

Parent.rate * loan_amt