예제 #1
0
        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();
        }
예제 #2
0
        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)));
        }