12345678910111213141516171819202122232425262728293031323334353637 |
- Guid Entity.Deleted;
- Guid EntityLink.Deleted;
- class Deletion : IPersistent { // !! Not IRemotable
- Guid ID;
- DateTime Date;
- UserLink User;
- string HeadTable;
- string Entity;
- }
- Provider.Query/Provider.List {
- Add (Deleted is NULL) for every query where condition
- }
- Provider.Delete {
- Add to Deletions and get Deletion.ID
- Find all deleted entities (head entity and all cascades) and set Deletion.ID for each
- }
- Provider.Save {
- // Do nothing
- }
- TO BE RESOLVED:
- Multi-Delete creates one deletion or many
- Purge Delete {
- Delete Entity;
- for relationship in children {
- if relationship == Cascade {
- Purge relationship.Child;
- } else if relationship == SetNull {
- relationship.Child.ID = NULL;
- }
- }
-
- Purge Deletion;
- }
|