Ejemplo n.º 1
0
        public T ExecuteSingle <T>(IBuilderStrategy builderStrategy, IEnumerable <TableObjectMapping> tableObjectMappings)
            where T : class, new()
        {
            Guard.ThrowIfNull("builderStrategy", builderStrategy);

            dynamic parameters = new ExpandoObject();

            parameters.TableObjectMappings = tableObjectMappings;

            try
            {
                var value = default(T);

                VerifyCommandText();

                using (var connection = new SqlConnection(_connectionString))
                {
                    connection.Open();

                    using (var command = GetCommand(_commandText, _queryType, connection))
                    {
                        using (var reader = command.ExecuteReader())
                        {
                            value = builderStrategy.BuildItems <T>(parameters, reader);
                        }
                    }
                }

                return(value);
            }
            finally
            {
                ClearParameters();
            }
        }