private void TestConnection()
 {
     using (var ctx = new Audit.SqlServer.Entities(_connectionString))
     {
         ctx.Database.Connection.Open();
         ctx.Database.Connection.Close();
     }
 }
        public override object InsertEvent(AuditEvent auditEvent)
        {
            var json = auditEvent.ToJson();

            using (var ctx = new Audit.SqlServer.Entities(_connectionString))
            {
                var cmdText = string.Format("INSERT INTO [{0}] ([{1}]) OUTPUT INSERTED.[{2}] VALUES (@json)", _tableName, _jsonColumnName, _idColumnName);
                var eventId = ctx.Database.SqlQuery <long>(cmdText, new SqlParameter("@json", json)).FirstOrDefault();
                return(eventId);
            }
        }
        public override void ReplaceEvent(object eventId, AuditEvent auditEvent)
        {
            var json = auditEvent.ToJson();

            using (var ctx = new Audit.SqlServer.Entities(_connectionString))
            {
                var ludScript = _lastUpdatedDateColumnName != null?string.Format(", [{0}] = GETUTCDATE()", _lastUpdatedDateColumnName) : string.Empty;

                var cmdText =
                    string.Format(
                        "UPDATE [{0}] SET [{1}] = @json{2} WHERE [{3}] = @eventId",
                        _tableName, _jsonColumnName, ludScript, _idColumnName);
                ctx.Database.ExecuteSqlCommand(cmdText, new SqlParameter("@json", json), new SqlParameter("@eventId", eventId));
            }
        }