private void InsertEvent(SerializedEvent e, SqlConnection connection, SqlTransaction transaction) { const string query = @" INSERT INTO logs.Event ( AggregateIdentifier, AggregateVersion, EventClass, EventType, EventData, IdentityTenant, IdentityUser, EventTime ) VALUES ( @AggregateIdentifier, @AggregateVersion, @EventClass, @EventType, @EventData, @IdentityTenant, @IdentityUser, @EventTime )"; using (var command = new SqlCommand(query, connection, transaction)) { var parameters = command.Parameters; parameters.AddWithValue("AggregateIdentifier", e.AggregateIdentifier); parameters.AddWithValue("AggregateVersion", e.AggregateVersion); parameters.AddWithValue("EventClass", e.EventClass); parameters.AddWithValue("EventType", e.EventType); parameters.AddWithValue("EventData", e.EventData); parameters.AddWithValue("IdentityTenant", e.IdentityTenant); parameters.AddWithValue("IdentityUser", e.IdentityUser); parameters.AddWithValue("EventTime", e.EventTime); try { command.ExecuteNonQuery(); } catch (SqlException ex) { throw new SqlInsertException($"The event ({e.EventType}) could not be saved.", ex); } } }