public void InsertOrReplace_Into_Table_Values_Value1() { using (var query = new InsertOrReplace().Into.Table("Table").Values.Value("Value1")) { Assert.That(query.ToSql(), Is.EqualTo("INSERT OR REPLACE INTO Table VALUES (@val_0)")); Assert.That(query, Has.Property("Parameters").One.EqualTo(new KeyValuePair <string, object>("@val_0", "Value1"))); } }
public void BatchInsert(Tag tag, IEnumerable <Image> images, DbConnection conn = null) { bool isTransaction = conn != null; try { if (!isTransaction) { conn = GetConnection(); } using (var command = conn.CreateCommand()) { using (var query = new InsertOrReplace().Into.Table(new Table <ImageTag>().Name) .Columns("ImageID", "TagID") .Values.Rows(images.Select(i => new object[] { i.ID, tag.ID }))) { string sql = query.ToSql(); command.CommandText = sql; command.CommandType = CommandType.Text; query.SetParameters(command); s_logger.Debug(sql); int count = command.ExecuteNonQuery(); s_logger.Debug($"Processed {count} records."); } } } finally { if (!isTransaction) { conn.Dispose(); } } }
public void InsertOrReplace(E entity, IDbConnection conn = null) { InitializeColumnDefinitions(); try { VerifyColumnDefinitions(conn); } catch (NotMatchColumnException e) { throw new DatabaseSchemaException($"Didn't insert because mismatch definition of table:{TableName}", e); } ConnectionInternal(new Action <IDbConnection>((connection) => { using (var command = connection.CreateCommand()) { var overrideColumns = SwapIfOverrided(Columns); using (var query = new InsertOrReplace().Into.Table(new Table <E>().Name) .Columns(overrideColumns.Select(c => c.ColumnName)) .Values.Row(overrideColumns.Select(c => c.PropInfo.GetValue(entity)))) { string sql = query.ToSql(); command.CommandText = sql; query.SetParameters(command); s_logger.Debug($"{sql} {query.GetParameters().ToStringKeyIsValue()}"); int inserted = command.ExecuteNonQuery(); if (inserted == 0) { throw new NoEntityInsertedException($"Failed:{sql} {query.GetParameters().ToStringKeyIsValue()}"); } } } }), conn); }