Brings an entity's field-permission rows in line with its fields and entity-level
permissions, writing the whole delta in one transaction.
Every row goes through BaseEntity.Save() / .Delete() rather than direct SQL, so the
save-time target guard, validation and entity actions all run — the delta function and the
guard agree instead of one bypassing the other. AllowDirectSQLInsert stays off.
Returns immediately when there is nothing to do, which is the overwhelmingly common case:
reconciliation is triggered from ordinary saves, and a transaction opened to write zero rows
is pure cost.
Brings an entity's field-permission rows in line with its fields and entity-level permissions, writing the whole delta in one transaction.
Every row goes through
BaseEntity.Save()/.Delete()rather than direct SQL, so the save-time target guard, validation and entity actions all run — the delta function and the guard agree instead of one bypassing the other.AllowDirectSQLInsertstays off.Returns immediately when there is nothing to do, which is the overwhelmingly common case: reconciliation is triggered from ordinary saves, and a transaction opened to write zero rows is pure cost.