示例#1
0
            public override IEnumerable <T> Execute <T>(QueryCommand command, Func <FieldReader, T> fnProjector, MappingEntity entity, object[] paramValues)
            {
                this.LogCommand(command, paramValues);
                this.StartUsingConnection();

                try
                {
                    IDbCommand  cmd    = this.GetCommand(command, paramValues);
                    IDataReader reader = this.ExecuteReader(cmd);
                    var         result = Project(reader, fnProjector, entity, true);

                    if (this.provider.ActionOpenedConnection)
                    {
                        result = result.ToList();
                    }
                    else
                    {
                        result = new EnumerateOnce <T>(result);
                    }

                    return(result);
                }
                finally
                {
                    this.StopUsingConnection();
                }
            }
示例#2
0
            public override IEnumerable <T> Execute <T>(QueryCommand command, Func <FieldReader, T> fnProjector, MappingEntity entity, object[] paramValues)
            {
                IEnumerable <T> enumerable2;

                this.LogCommand(command, paramValues);
                this.StartUsingConnection();
                try
                {
                    DbCommand command2 = this.GetCommand(command, paramValues);
                    using (DbDataReader reader = this.ExecuteReader(command2))
                    {
                        IEnumerable <T> source = this.Project <T>(reader, fnProjector, entity, true);
                        if (this.provider.ActionOpenedConnection)
                        {
                            source = source.ToList <T>();
                        }
                        else
                        {
                            source = new EnumerateOnce <T>(source).ToList <T>();
                        }
                        enumerable2 = source;
                    }
                }
                finally
                {
                    this.StopUsingConnection();
                }
                return(enumerable2);
            }
示例#3
0
            public override IEnumerable <T> ExecuteBatch <T>(QueryCommand query, IEnumerable <object[]> paramSets, Func <FieldReader, T> fnProjector, MappingEntity entity, int batchSize, bool stream)
            {
                IEnumerable <T> enumerable2;

                this.StartUsingConnection();
                try
                {
                    IEnumerable <T> source = this.ExecuteBatch <T>(query, paramSets, fnProjector, entity);
                    if (!(stream && !this.ActionOpenedConnection))
                    {
                        return(source.ToList <T>());
                    }
                    enumerable2 = new EnumerateOnce <T>(source);
                }
                finally
                {
                    this.StopUsingConnection();
                }
                return(enumerable2);
            }
示例#4
0
            public override IEnumerable <int> ExecuteBatch(QueryCommand query, IEnumerable <object[]> paramSets, int batchSize, bool stream)
            {
                IEnumerable <int> enumerable2;

                this.StartUsingConnection();
                try
                {
                    IEnumerable <int> source = this.ExecuteBatch(query, paramSets);
                    if (!(stream && !this.ActionOpenedConnection))
                    {
                        return(source.ToList <int>());
                    }
                    enumerable2 = new EnumerateOnce <int>(source);
                }
                finally
                {
                    this.StopUsingConnection();
                }
                return(enumerable2);
            }