public DataTableComparision(DataTable table, DataTable compareTable) { Guard.ArgumentIsNotNull(table, nameof(table)); Guard.ArgumentIsNotNull(compareTable, nameof(compareTable)); Table = table; CompareTable = compareTable; CompareColumns = new CompareColumnCollection(this); CompareKeys = new CompareColumnCollection(this); DataTableExpressionRender = new DataTableExpressionRender(); }
protected virtual DataRow[] FindRowsByPrimaryKeys(DataRow row, DataTable compareTable) { Guard.ArgumentIsNotNull(CompareKeys, nameof(CompareKeys)); ICondition filter = null; foreach (var col in CompareKeys) { var con = new ValueCondition(col.Column, CompareOperation.Equals, GetValue(col, row)); filter = filter == null ? con : filter.And(con); } return(compareTable.Select(DataTableExpressionRender.BuildCondition(filter))); }