Massive.DynamicModel.Query C# (CSharp) Method

Query() public method

Enumerates the reader yielding the result - thanks to Jeroen Haegebaert
public Query ( string sql ) : IEnumerable
sql string
return IEnumerable
        public virtual IEnumerable<dynamic> Query(string sql, params object[] args)
        {
            using (var conn = OpenConnection()) {
                var rdr = CreateCommand(sql, conn, args).ExecuteReader();
                while (rdr.Read()) {
                    yield return rdr.RecordToExpando(); ;
                }
            }
        }

Same methods

DynamicModel::Query ( string sql, DbConnection connection ) : IEnumerable

Usage Example

        private static void Main( string[] args )
        {
            var model = new DynamicModel( args[0] );

            bool whatif = Array.IndexOf( args, "-whatif" ) > 0;

            IEnumerable<dynamic> packages = model.Query(
                    @"  SELECT pr.Id, p.[Key], p.Version, p.NormalizedVersion
                        FROM Packages p
                        INNER JOIN PackageRegistrations pr ON pr.[Key] = p.PackageRegistrationKey
                        WHERE p.NormalizedVersion IS NOT NULL AND p.Version != p.NormalizedVersion" );

            foreach ( dynamic package in packages )
            {
                string old = String.Format( "{0}.{1}.nupkg", package.Id.ToLower(), package.Version );

                string replacement = String.Format( "{0}.{1}.nupkg", package.Id.ToLower(), package.NormalizedVersion );

                Console.WriteLine( "Copy: {0} to {1}", old, replacement );

                if ( !whatif )
                {
                    File.Copy( Path.Combine( args[1], old ), Path.Combine( args[1], replacement ), true );
                }
            }
        }
All Usage Examples Of Massive.DynamicModel::Query