LLBLGen: How can I softdelete a entry

后端 未结 3 1074
被撕碎了的回忆
被撕碎了的回忆 2021-02-10 12:41

I have inherited a project that uses LLBLGen Pro for the DB layer. The DB model requires that when a entry is deleted a flag (DeletedDate is set to the current time). The last p

相关标签:
3条回答
  • 2021-02-10 13:20

    I implemented this in SQL Server 2005 using INSTEAD OF triggers on delete for any soft delete table. The triggers set the delete flag and perform clean-up. The beauty of this solution is that it correctly handles deletes issued by any system that accesses the database. INSTEAD OF is relatively new in SQL Server, I know there's an Oracle equivalent.

    This solution also plays nicely with our O/R mapper -- I created views that filter out soft deleted records and mapped those. The views are also used for all reporting.

    0 讨论(0)
  • 2021-02-10 13:28

    It depends if you are using self-servicing or adapter. If SS you will need to modify the template so that it sets the flag for you rather than deleting the entity.

    If adapter, you can inherit from DataAccessAdapter and override the delete methods to set the flag for you rather than deleting the entities.

    It's generally a crappy solution for performace though as every query then needs to filter out "deleted" entities - and because the selectvity on the "deleted" column won't be very high (all of your "undelted" records are null - i'm guessing this will be the majority of them) indexing it doesn't gain you a great deal - you will end up with a lot of table scans.

    0 讨论(0)
  • 2021-02-10 13:35

    You could create custom task in LLBLGen that would override those for you when you are generating entities. Check out their template studio and template examples on the website.

    0 讨论(0)
提交回复
热议问题