/// <inheritdoc />
    protected override void PersistNewItem(IAuditEntry entity)
    {
        entity.AddingEntity();

        AuditEntryDto dto = AuditEntryFactory.BuildDto(entity);

        Database.Insert(dto);
        entity.Id = dto.Id;
        entity.ResetDirtyProperties();
    }
    /// <inheritdoc />
    protected override IAuditEntry?PerformGet(int id)
    {
        Sql <ISqlContext> sql = Sql()
                                .Select <AuditEntryDto>()
                                .From <AuditEntryDto>()
                                .Where <AuditEntryDto>(x => x.Id == id);

        AuditEntryDto dto = Database.FirstOrDefault <AuditEntryDto>(sql);

        return(dto == null ? null : AuditEntryFactory.BuildEntity(dto));
    }
        /// <inheritdoc />
        protected override IAuditEntry PerformGet(int id)
        {
            var sql = new Sql()
                      .Select("*")
                      .From <AuditEntryDto>(SqlSyntax)
                      .Where <AuditEntryDto>(x => x.Id == id, SqlSyntax);

            var dto = Database.FirstOrDefault <AuditEntryDto>(sql);

            return(dto == null ? null : AuditEntryFactory.BuildEntity(dto));
        }