Dapper-Plus icon indicating copy to clipboard operation
Dapper-Plus copied to clipboard

PostgreSql: Audit does not work for BulkUpdate

Open ElenaShlykova opened this issue 2 years ago • 7 comments

Hello, We noticed that the audit does not work correctly with the postgreSQL database. When updating a record with BulkUpdate, the old value is equal to the new value.

In my example, I am creating a test entity with Value = 'TestValue'. After that, I update the Value property to 'NewValue' and update the record with BulkUpdate. After that, I see that the record in the database has been updated.

         using (var connection = new NpgsqlConnection("Server=localhost; Port=5432; Database=dbname; User Id=sa; Password=123;"))
         {
            var dapperAuditEntries = new List<AuditEntry>();
            var set = connection.UseAuditing(dapperAuditEntries);

            set.BulkInsert(testEntity);
            Console.WriteLine(testEntity.Value);
            **// Output is 'TestValue'**

            testEntity.Value = "NewValue";
            set.BulkUpdate(testEntity);
            Console.WriteLine(testEntity.Value);
            **// Output is 'NewValue'**
         }

The problem is in dapperAuditEntries the old value is equal to the new value: image I expect the old value to be 'TestValue'.

Mapping:

            DapperPlusManager.Entity<TestEntity>()
               .Key(x => x.Id, "id")
               .Map(x => x.Value, "value")
               .Table("table");

This works well for mssql.

ElenaShlykova avatar Jan 05 '22 16:01 ElenaShlykova

Hello @ElenaShlykova ,

Thank you for reporting,

My developer will look at it.

Best Regards,

Jon

JonathanMagnan avatar Jan 06 '22 14:01 JonathanMagnan

Hi @JonathanMagnan - have you been able to look into this yet?

karolswdev avatar Sep 06 '22 16:09 karolswdev

Hi @JonathanMagnan - bump :)

karolswdev avatar Sep 13 '22 18:09 karolswdev

Hello @karolswdev ,

Sorry for the long delay,

Unfortunately, there is no good news for this one. Making it work correctly with PostgreSQL requires too many changes for what we can do now. We currently focus our time on supporting and re-write our library for EF Core 7, so that's currently impossible to find enough time to make all the necessary changes for this one.

Best Regards,

Jon

JonathanMagnan avatar Sep 14 '22 15:09 JonathanMagnan

Hi @JonathanMagnan,

What is alternative for this ? Can you provide and example ?

dpatusb avatar Oct 14 '22 09:10 dpatusb

Hello @karolswdev , @dpatusb ,

It took us some time but the v5.0.0 has been finally released.

The BulkUpdate and BulkMerge now correctly work with the audit features.

If you have the chance to test it, let us know if everything works as expected.

Best Regards,

Jon

JonathanMagnan avatar Feb 21 '23 21:02 JonathanMagnan

@ElenaShlykova - looks like they've made a major change. Could be a positive impact for us.

karolswdev avatar Feb 21 '23 22:02 karolswdev