public void Insert(Entity item) { var sqlTokens = new SqlTokens(item.GetDictionaryInDbStyle(true)); var sql = "insert into " + item.TableName + " (" + sqlTokens.AsColumnNames(false) + ") select " + sqlTokens.AsIndcies(false) + " from dual"; using (var connection = CreateOrReuseConnection()) { using (var command = CreateCommand(sql, connection.GetAdoConnection())) { AddParameters(command, sqlTokens.GetNonNullableFieldsAndValues(), 0); command.ExecuteNonQuery(); } } }
public void MergeInto(Entity item) { var dic = item.GetWhereClauseOnPrimaryKeyDbStyle(); var args = dic.Values.ToArray(); var whereClause = new SqlTokens(dic).AsWhereClause(); var sql = "select count(1) from " + item.TableName + " " + whereClause; var count = QueryScalar <int>(sql, args); if (count == 0) { Insert(item); } else { Update(item); } }
public void Delete(Entity item, string whereClause = null, params object[] args) { //build where clause from metadata if (whereClause == null) { var dic = item.GetWhereClauseOnPrimaryKeyDbStyle(); var sqlTokens = new SqlTokens(dic); whereClause = sqlTokens.AsWhereClause(); args = dic.Values.ToArray(); } var sql = "delete from " + item.TableName + " " + whereClause; using (var connection = CreateOrReuseConnection()) { using (var command = CreateCommand(sql, connection.GetAdoConnection())) { AddParameters(command, args); command.ExecuteNonQuery(); } } }