Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EvaluateExpressions() [3/3]

void System.Data.DataTable.EvaluateExpressions ( DataRow row,
DataRowAction action,
List< DataRow > cachedRows )
inlinepackageinherited

Definition at line 5987 of file DataTable.cs.

5988 {
5989 if (action == DataRowAction.Add || action == DataRowAction.Change || (action == DataRowAction.Rollback && (row._oldRecord != -1 || row._newRecord != -1)))
5990 {
5991 if (row._oldRecord != -1 && row._oldRecord != row._newRecord)
5992 {
5994 }
5995 if (row._newRecord != -1)
5996 {
5998 }
5999 if (row._tempRecord != -1)
6000 {
6002 }
6003 return;
6004 }
6005 switch (action)
6006 {
6007 case DataRowAction.Rollback:
6008 if (row._oldRecord != -1 || row._newRecord != -1)
6009 {
6010 break;
6011 }
6012 goto case DataRowAction.Delete;
6013 case DataRowAction.Delete:
6014 if (_dependentColumns == null)
6015 {
6016 break;
6017 }
6018 foreach (DataColumn dependentColumn in _dependentColumns)
6019 {
6020 if (dependentColumn.DataExpression == null || !dependentColumn.DataExpression.HasLocalAggregate() || dependentColumn.Table != this)
6021 {
6022 continue;
6023 }
6024 for (int i = 0; i < Rows.Count; i++)
6025 {
6026 DataRow dataRow = Rows[i];
6027 if (dataRow._oldRecord != -1 && dataRow._oldRecord != dataRow._newRecord)
6028 {
6030 }
6031 }
6032 for (int j = 0; j < Rows.Count; j++)
6033 {
6034 DataRow dataRow2 = Rows[j];
6035 if (dataRow2._tempRecord != -1)
6036 {
6038 }
6039 }
6040 for (int k = 0; k < Rows.Count; k++)
6041 {
6042 DataRow dataRow3 = Rows[k];
6043 if (dataRow3._newRecord != -1)
6044 {
6046 }
6047 }
6048 break;
6049 }
6050 if (cachedRows == null)
6051 {
6052 break;
6053 }
6054 {
6055 foreach (DataRow cachedRow in cachedRows)
6056 {
6057 if (cachedRow._oldRecord != -1 && cachedRow._oldRecord != cachedRow._newRecord)
6058 {
6059 cachedRow.Table.EvaluateDependentExpressions(cachedRow.Table._dependentColumns, cachedRow, DataRowVersion.Original, null);
6060 }
6061 if (cachedRow._newRecord != -1)
6062 {
6063 cachedRow.Table.EvaluateDependentExpressions(cachedRow.Table._dependentColumns, cachedRow, DataRowVersion.Current, null);
6064 }
6065 if (cachedRow._tempRecord != -1)
6066 {
6067 cachedRow.Table.EvaluateDependentExpressions(cachedRow.Table._dependentColumns, cachedRow, DataRowVersion.Proposed, null);
6068 }
6069 }
6070 break;
6071 }
6072 }
6073 }
DataRowCollection Rows
Definition DataTable.cs:701
void EvaluateDependentExpressions(DataColumn column)
List< DataColumn > _dependentColumns
Definition DataTable.cs:160

References System.Data.DataTable._dependentColumns, System.action, System.Data.DataRowCollection.Count, System.Runtime.Serialization.Dictionary, System.Data.DataTable.EvaluateDependentExpressions(), and System.Data.DataTable.Rows.