Exemplo n.º 1
0
        public int EvaluateInMemory(InMemoryQueryRunner runner, out int identity)
        {
            var builder = new InsertBuilder <T>();

            InsertFunction(builder);
            FromQuery.InsertImpl(builder, out identity);
            return(1);
        }
Exemplo n.º 2
0
        public int EvaluateInMemory(InMemoryQueryRunner runner, out int identity)
        {
            var lastNonQueryResult = 0;

            identity = 0;

            var items = SelectQuery.InMemorySelect(runner);

            foreach (var item in items)
            {
                var builder = new InsertBuilder <T>();
                InsertFunction(item, builder);

                FromQuery.InsertImpl(builder, out identity);
                lastNonQueryResult++;
            }

            return(lastNonQueryResult);
        }
Exemplo n.º 3
0
        public List <object> EvaluateInMemory(InMemoryQueryRunner runner)
        {
            // Scan for limit/offset and handle here
            int?limit  = null;
            int?offset = null;

            for (Query parent = SelectQuery; parent != null; parent = parent.Parent)
            {
                if (limit == null && parent is ILimitQuery limitQuery)
                {
                    limit = limitQuery.LimitIndex;
                }

                if (offset == null && parent is IOffsetQuery offsetQuery)
                {
                    offset = offsetQuery.OffsetIndex;
                }

                if (offset != null && limit != null)
                {
                    break;
                }
            }

            var result = SelectQuery.InMemorySelect(runner).Cast <object>();

            if (offset.HasValue)
            {
                result = result.Skip(offset.Value);
            }

            if (limit.HasValue)
            {
                result = result.Take(limit.Value);
            }

            return(result.ToList());
        }