示例#1
0
        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); }
            }
        }