Пример #1
0
 /// <summary>
 /// Checks the servers Information Schema to seee if a database table exists.
 /// </summary>
 /// <param name="Table">The table name</param>
 /// <returns></returns>
 public bool TableExists(string Table)
 {
     if (ReuseSingleConnection)
     {
         lock (ActiveConnection)
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(ActiveConnection,
                                                                             "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = @0 AND TABLE_NAME = @1;", Database, Table))
                 using (MySqlDataReader Reader = Command.ExecuteReader())
                 {
                     return(Reader.HasRows);
                 }
         }
     }
     else
     {
         using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true))
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection,
                                                                             "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = @0 AND TABLE_NAME = @1;", Database, Table))
                 using (MySqlDataReader Reader = Command.ExecuteReader())
                 {
                     return(Reader.HasRows);
                 }
         }
     }
 }
Пример #2
0
 public static int EFUpdate <T>(this MySqlConnection connection, T instance, string table)
 {
     using (var cmd = EntityCommandBuilder.BuildUpdateCommand(instance, table, connection))
     {
         return(cmd.ExecuteNonQuery());
     }
 }
Пример #3
0
 public static int EFExecuteNonQuery(this MySqlConnection connection, string command, params object[] parameters)
 {
     using (var cmd = EntityCommandBuilder.BuildCommand(connection, command, parameters))
     {
         return(cmd.ExecuteNonQuery());
     }
 }
Пример #4
0
 public static async Task <int> EFUpdateAsync <T>(this MySqlConnection connection, T instance, string table)
 {
     using (var cmd = EntityCommandBuilder.BuildUpdateCommand(instance, table, connection))
     {
         return(await cmd.ExecuteNonQueryAsync());
     }
 }
Пример #5
0
 public static async Task <int> EFExecuteNonQueryAsync(this MySqlConnection connection, string command, params object[] parameters)
 {
     using (var cmd = EntityCommandBuilder.BuildCommand(connection, command, parameters))
     {
         return(await cmd.ExecuteNonQueryAsync());
     }
 }
        public void Delete <T>(T Obj, string Table)
        {
            string value = EntityCommandBuilder.BuildDeleteCommandContent(Obj, Table, m_Assigner.AssignPrefix(), out var properties);

            lock (m_Commands)
            {
                m_Commands.AppendLine(value);
            }
            properties.Merge(m_MasterPropertiesList);
        }
        public void ExecuteNonQuery(string command, params object[] parameters)
        {
            string value = EntityCommandBuilder.BuildCommandContent(command, m_Assigner.AssignPrefix(), out var properties, parameters);

            lock (m_Commands)
            {
                m_Commands.AppendLine(value);
            }
            properties.Merge(m_MasterPropertiesList);
        }
Пример #8
0
        /// <summary>
        /// Updates an object in the specified database table. Object Model must have an associated Primary Key.
        /// </summary>
        public async Task UpdateAsync <T>(T Obj, string Table)
        {
            using (MySqlConnection Connection = GetConnection(autoOpen: false, forceNew: true))
            {
                await Connection.OpenAsync();

                using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, Connection))
                {
                    await Command.ExecuteNonQueryAsync();
                }
            }
        }
Пример #9
0
        public async Task DeleteTableAsync(string Table)
        {
            using (MySqlConnection Connection = GetConnection(autoOpen: false, forceNew: true))
            {
                await Connection.OpenAsync();

                using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection, "DROP TABLE @0", Table))
                {
                    await Command.ExecuteNonQueryAsync();
                }
                await Connection.CloseAsync();
            }
        }
Пример #10
0
        /// <summary>
        /// Creates the object in the database table.
        /// </summary>
        /// <param name="Obj">The object to create</param>
        /// <param name="Table">The table to create the object in</param>
        public async Task InsertAsync <T>(T Obj, string Table)
        {
            using (MySqlConnection connection = GetConnection(autoOpen: false, forceNew: true))
            {
                await connection.OpenAsync();

                using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, connection))
                {
                    await Command.ExecuteNonQueryAsync();
                }
                await connection.CloseAsync();
            }
        }
        private IEnumerable <IWriteCommand> GenerateWriteCommands()
        {
            var entries = ChangeTracker.Entries();

            foreach (var entry in entries)
            {
                if (entry.State != EntityEntryState.NoChanges)
                {
                    yield return(EntityCommandBuilder.CreateCommand(entry));
                }
            }

            foreach (var command in CommandStaging.GetCommands())
            {
                yield return(command);
            }
        }
Пример #12
0
        public void WriteFromStaging()
        {
            var connection = TestConfiguration.GetConnection();
            var pipeline   = new EntityWriterPipeline <TestModel>(connection);

            var entity = new TestModel
            {
                Title = "EntityWriterPipelineTests.WriteFromCollection"
            };
            var command = EntityCommandBuilder <TestModel> .CreateCommand(
                new EntityEntry <TestModel>(entity, EntityEntryState.Added)
                );

            pipeline.StageCommand(command);
            pipeline.Write();

            Assert.IsNotNull(entity.Id);
        }
Пример #13
0
 public void DeleteTable(string Table)
 {
     if (ReuseSingleConnection)
     {
         lock (ActiveConnection)
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(ActiveConnection, $"DROP TABLE `{Table.Replace("`", "``")}`"))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
     else
     {
         using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true))
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildCommand(Connection, $"DROP TABLE `{Table.Replace("`", "``")}`"))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
 }
Пример #14
0
 /// <summary>
 /// Updates an object in the specified database table. Object Model must have an associated Primary Key.
 /// </summary>
 public void Update <T>(T Obj, string Table)
 {
     if (ReuseSingleConnection)
     {
         lock (ActiveConnection)
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, ActiveConnection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
     else
     {
         using (MySqlConnection Connection = GetConnection(autoOpen: true, forceNew: true))
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildUpdateCommand <T>(Obj, Table, Connection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
 }
Пример #15
0
 /// <summary>
 /// Creates the object in the database table.
 /// </summary>
 /// <param name="Obj">The object to create</param>
 /// <param name="Table">The table to create the object in</param>
 public void Insert <T>(T Obj, string Table)
 {
     if (ReuseSingleConnection)
     {
         lock (ActiveConnection)
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, ActiveConnection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
     else
     {
         using (MySqlConnection connection = GetConnection())
         {
             connection.Open();
             using (MySqlCommand Command = EntityCommandBuilder.BuildInsertCommand <T>(Obj, Table, connection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
 }
Пример #16
0
 /// <summary>
 /// Deletes the object from a database table. Object Model must have an associated Primary Key.
 /// </summary>
 public void Delete <T>(T Obj, string Table)
 {
     if (ReuseSingleConnection)
     {
         lock (ActiveConnection)
         {
             using (MySqlCommand Command = EntityCommandBuilder.BuildDeleteCommand <T>(Obj, Table, ActiveConnection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
     else
     {
         using (MySqlConnection Connection = new MySqlConnection(ConnectionString))
         {
             Connection.Open();
             using (MySqlCommand Command = EntityCommandBuilder.BuildDeleteCommand <T>(Obj, Table, Connection))
             {
                 Command.ExecuteNonQuery();
             }
         }
     }
 }
 public EntityCommandBuilderTest()
 {
     this.commandBuilder = new EntityCommandBuilder();
 }