private void FindImportEntityDuplicate(EntitySchemaQuery esq, List <Entity> entities, ImportParameters parameters,
                                               IEnumerable <ImportColumn> keyColumns, Func <ColumnExpression, object> columnValueAction)
        {
            var mainFilterGroup = new EntitySchemaQueryFilterCollection(esq, LogicalOperationStrict.Or);

            esq.Filters.Add(mainFilterGroup);
            var importColumns   = keyColumns.ToList();
            var keyColumnsCount = importColumns.Count();

            foreach (var importEntity in parameters.Entities)
            {
                var columnsExpressions = GetKeyColumnsValues(parameters, importEntity, importColumns);
                if (!columnsExpressions.Any())
                {
                    continue;
                }
                var filters = GetKeyColumnsFilters(esq, columnsExpressions,
                                                   columnValueAction);
                mainFilterGroup.Add(filters);
                var parametersCount = mainFilterGroup.Count * keyColumnsCount;
                if (parametersCount >= MaxQueryParametersCount)
                {
                    AddEntitiesRange(esq, entities);
                    esq.ResetSelectQuery();
                    mainFilterGroup.Clear();
                }
            }
            if (mainFilterGroup.Any())
            {
                AddEntitiesRange(esq, entities);
            }
        }